RCFilters: refactor highlight state
[lhc/web/wiklou.git] / tests / qunit / suites / resources / mediawiki.rcfilters / dm.SavedQueryItemModel.test.js
1 /* eslint-disable camelcase */
2 ( function ( mw ) {
3 var itemData = {
4 params: {
5 param1: '1',
6 param2: 'foo|bar',
7 invert: '0'
8 },
9 highlights: {
10 param1_color: 'c1',
11 param2_color: 'c2'
12 }
13 };
14
15 QUnit.module( 'mediawiki.rcfilters - SavedQueryItemModel' );
16
17 QUnit.test( 'Initializing and getters', function ( assert ) {
18 var model;
19
20 model = new mw.rcfilters.dm.SavedQueryItemModel(
21 'randomID',
22 'Some label',
23 $.extend( true, {}, itemData )
24 );
25
26 assert.equal(
27 model.getID(),
28 'randomID',
29 'Item ID is retained'
30 );
31
32 assert.equal(
33 model.getLabel(),
34 'Some label',
35 'Item label is retained'
36 );
37
38 assert.deepEqual(
39 model.getData(),
40 itemData,
41 'Item data is retained'
42 );
43
44 assert.ok(
45 !model.isDefault(),
46 'Item default state is retained.'
47 );
48 } );
49
50 QUnit.test( 'Default', function ( assert ) {
51 var model;
52
53 model = new mw.rcfilters.dm.SavedQueryItemModel(
54 'randomID',
55 'Some label',
56 $.extend( true, {}, itemData )
57 );
58
59 assert.ok(
60 !model.isDefault(),
61 'Default state represented when item initialized with default:false.'
62 );
63
64 model.toggleDefault( true );
65 assert.ok(
66 model.isDefault(),
67 'Default state toggles to true successfully'
68 );
69
70 model.toggleDefault( false );
71 assert.ok(
72 !model.isDefault(),
73 'Default state toggles to false successfully'
74 );
75
76 // Reset
77 model = new mw.rcfilters.dm.SavedQueryItemModel(
78 'randomID',
79 'Some label',
80 $.extend( true, {}, itemData ),
81 { default: true }
82 );
83
84 assert.ok(
85 model.isDefault(),
86 'Default state represented when item initialized with default:true.'
87 );
88 } );
89 }( mediaWiki ) );