summaryrefslogtreecommitdiff
path: root/www/wiki/tests/qunit/suites/resources/mediawiki.rcfilters/dm.SavedQueryItemModel.test.js
blob: 181e9925dc20b1b84739ee77dd84bf9fba297360 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/* eslint-disable camelcase */
( function ( mw ) {
	var itemData = {
		params: {
			param1: '1',
			param2: 'foo|bar',
			invert: '0'
		},
		highlights: {
			param1_color: 'c1',
			param2_color: 'c2'
		}
	};

	QUnit.module( 'mediawiki.rcfilters - SavedQueryItemModel' );

	QUnit.test( 'Initializing and getters', function ( assert ) {
		var model;

		model = new mw.rcfilters.dm.SavedQueryItemModel(
			'randomID',
			'Some label',
			$.extend( true, {}, itemData )
		);

		assert.equal(
			model.getID(),
			'randomID',
			'Item ID is retained'
		);

		assert.equal(
			model.getLabel(),
			'Some label',
			'Item label is retained'
		);

		assert.deepEqual(
			model.getData(),
			itemData,
			'Item data is retained'
		);

		assert.ok(
			!model.isDefault(),
			'Item default state is retained.'
		);
	} );

	QUnit.test( 'Default', function ( assert ) {
		var model;

		model = new mw.rcfilters.dm.SavedQueryItemModel(
			'randomID',
			'Some label',
			$.extend( true, {}, itemData )
		);

		assert.ok(
			!model.isDefault(),
			'Default state represented when item initialized with default:false.'
		);

		model.toggleDefault( true );
		assert.ok(
			model.isDefault(),
			'Default state toggles to true successfully'
		);

		model.toggleDefault( false );
		assert.ok(
			!model.isDefault(),
			'Default state toggles to false successfully'
		);

		// Reset
		model = new mw.rcfilters.dm.SavedQueryItemModel(
			'randomID',
			'Some label',
			$.extend( true, {}, itemData ),
			{ default: true }
		);

		assert.ok(
			model.isDefault(),
			'Default state represented when item initialized with default:true.'
		);
	} );
}( mediaWiki ) );