mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Echo
synced 2024-11-28 01:30:15 +00:00
ddaf43c5a0
This will essentially all be deleted after I55c18cf723a32f80b93a01dd0687e005162c4e93, but thats fine\ Bug: T343053 Change-Id: Ifb382af388cdc24dc1ecef105ec89c9129194c19
64 lines
2.4 KiB
JavaScript
64 lines
2.4 KiB
JavaScript
QUnit.module( 'ext.echo.mobile - NotificationBadge', function () {
|
||
var NotificationBadge = require( 'ext.echo.mobile' ).NotificationBadge;
|
||
|
||
QUnit.test( '.setCount()', function ( assert ) {
|
||
var initialExpectationsMet,
|
||
badge = new NotificationBadge( {
|
||
hasNotifications: true,
|
||
hasUnseenNotifications: true,
|
||
notificationCountRaw: 5
|
||
} );
|
||
initialExpectationsMet = badge.$el.find( '.mf-icon' ).length === 0;
|
||
|
||
badge.setCount( 0 );
|
||
assert.true( initialExpectationsMet, 'No icon.' );
|
||
badge.setCount( 105 );
|
||
assert.strictEqual( badge.options.notificationCountRaw, 100, 'Number is capped to 100.' );
|
||
} );
|
||
|
||
QUnit.test( '.setCount() Eastern Arabic numerals', function ( assert ) {
|
||
var badge;
|
||
|
||
this.sandbox.stub( mw.language, 'convertNumber' )
|
||
.withArgs( 2 ).returns( '۲' )
|
||
.withArgs( 5 ).returns( '۵' );
|
||
this.sandbox.stub( mw, 'message' )
|
||
.withArgs( 'echo-badge-count', '۵' ).returns( { text: function () { return '۵'; } } )
|
||
.withArgs( 'echo-badge-count', '۲' ).returns( { text: function () { return '۲'; } } );
|
||
|
||
badge = new NotificationBadge( {
|
||
el: $( '<div><a title="n" href="/" class="notification-unseen"><div class="circle" ><span data-notification-count="2">۲</span></div></a></div>' )
|
||
} );
|
||
assert.strictEqual( badge.options.notificationCountRaw, 2,
|
||
'Number is parsed from Eastern Arabic numerals' );
|
||
assert.strictEqual( badge.options.notificationCountString, '۲',
|
||
'Number will be rendered in Eastern Arabic numerals' );
|
||
badge.setCount( 5 );
|
||
assert.strictEqual( badge.options.notificationCountString, '۵',
|
||
'Number will be rendered in Eastern Arabic numerals' );
|
||
} );
|
||
|
||
QUnit.test( '.render() [hasUnseenNotifications]', function ( assert ) {
|
||
var badge = new NotificationBadge( {
|
||
notificationCountRaw: 0,
|
||
hasNotifications: false,
|
||
hasUnseenNotifications: false
|
||
} );
|
||
assert.strictEqual( badge.$el.find( '.mw-ui-icon' ).length, 1, 'A bell icon is visible' );
|
||
} );
|
||
|
||
QUnit.test( '.markAsSeen()', function ( assert ) {
|
||
var badge = new NotificationBadge( {
|
||
notificationCountRaw: 2,
|
||
hasNotifications: true,
|
||
hasUnseenNotifications: true
|
||
} );
|
||
// Badge resets counter to zero
|
||
badge.setCount( 0 );
|
||
assert.strictEqual( badge.$el.find( '.mw-ui-icon' ).length, 0, 'The bell icon is not visible' );
|
||
badge.markAsSeen();
|
||
assert.strictEqual( badge.$el.find( '.notification-unseen' ).length, 0,
|
||
'Unseen class disappears after markAsSeen called.' );
|
||
} );
|
||
} );
|