Page MenuHomeWickedGov Phorge

test_mw.echo.dm.FiltersModel.js
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

test_mw.echo.dm.FiltersModel.js

QUnit.module( 'ext.echo.dm - FiltersModel' );
QUnit.test.each( 'Constructing the model', {
'Empty config': {
config: {},
expected: {}
},
'Readstate: unread': {
config: {
readState: 'unread'
},
expected: {
getReadState: 'unread'
}
},
'Readstate: read': {
config: {
readState: 'read'
},
expected: {
getReadState: 'read'
}
}
}, ( assert, data ) => {
const defaultValues = {
getReadState: 'all'
};
const expected = $.extend( true, {}, defaultValues, data.expected );
const model = new mw.echo.dm.FiltersModel( data.config );
for ( const method in expected ) {
assert.deepEqual(
// Run the method
model[ method ](),
// Expected value
expected[ method ],
// Message
method
);
}
} );
QUnit.test( 'Changing filters', ( assert ) => {
const model = new mw.echo.dm.FiltersModel();
assert.strictEqual(
model.getReadState(),
'all',
'Initial value: all'
);
model.setReadState( 'unread' );
assert.strictEqual(
model.getReadState(),
'unread',
'Changing state (unread)'
);
model.setReadState( 'read' );
assert.strictEqual(
model.getReadState(),
'read',
'Changing state (read)'
);
model.setReadState( 'foo' );
assert.strictEqual(
model.getReadState(),
'read',
'Ignoring invalid state (foo)'
);
} );
QUnit.test( '.setReadState() events', ( assert ) => {
const results = [];
const model = new mw.echo.dm.FiltersModel();
// Listen to update event
model.on( 'update', () => {
results.push( model.getReadState() );
} );
// Trigger events
model.setReadState( 'read' ); // [ 'read' ]
model.setReadState( 'unread' ); // [ 'read', 'unread' ]
model.setReadState( 'unread' ); // (no change, no event) [ 'read', 'unread' ]
model.setReadState( 'all' ); // [ 'read', 'unread', 'all' ]
model.setReadState( 'foo' ); // (invalid value, no event) [ 'read', 'unread', 'all' ]
model.setReadState( 'unread' ); // [ 'read', 'unread', 'all', 'unread' ]
assert.deepEqual(
// Actual
results,
// Expected:
[ 'read', 'unread', 'all', 'unread' ],
// Message
'Update events emitted'
);
} );

File Metadata

Mime Type
text/plain
Expires
Sat, Oct 3, 08:19 (1 w, 5 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
98/55/57e423e6126d9d1c49c54098bf76
Default Alt Text
test_mw.echo.dm.FiltersModel.js (2 KB)

Event Timeline