UNPKG

5.06 kBJavaScriptView Raw
1
2var tf = new TableFilter('demo', {
3 base_path: '../dist/tablefilter/',
4 rows_counter: true
5});
6tf.init();
7var rowsCounter = tf.feature('rowsCounter');
8var rowToAdd = tf.dom().rows[8];
9
10var tf1 = new TableFilter('demo', {
11 base_path: '../dist/tablefilter/',
12 rows_counter: true,
13 paging: {
14 length: 3
15 }
16});
17
18module('Sanity checks');
19test('Initial verifications', function() {
20 deepEqual(tf instanceof TableFilter, true, 'TableFilter instance');
21 deepEqual(tf.getFilterableRowsNb(), 7, 'Initial number of filterable rows');
22 deepEqual(tf.getValidRowsNb(), 0, 'Initial number of valid rows');
23 notEqual(rowsCounter, null, 'RowsCounter instanciated');
24 deepEqual(rowsCounter.label.innerHTML, '7', 'Initial rows count');
25});
26
27module('DOM changes');
28test('Can filter after row is removed', function() {
29 // setup
30 tf.clearFilters();
31 tf.dom().deleteRow(-1);
32
33 // act
34 tf.filter();
35
36 // assert
37 deepEqual(tf.getFilterableRowsNb(), 6,
38 'Number of filterable rows after row is removed');
39 deepEqual(tf.getValidRowsNb(), 6,
40 'Number of valid rows after row is removed');
41 deepEqual(rowsCounter.label.innerHTML, '6',
42 'Rows count after row is removed');
43});
44
45test('Can filter after row is added', function() {
46 // setup
47 tf.clearFilters();
48 tf.dom().tBodies[0].appendChild(rowToAdd);
49
50 // act
51 tf.filter();
52
53 // assert
54 deepEqual(tf.getFilterableRowsNb(), 7,
55 'Number of filterable rows after row is added');
56 deepEqual(tf.getValidRowsNb(), 7,
57 'Number of valid rows after row is added');
58 deepEqual(rowsCounter.label.innerHTML, '7',
59 'Rows count after row is added');
60});
61
62test('Can filter the added row', function() {
63 // setup
64 tf.clearFilters();
65 tf.setFilterValue(0, 'Adelaide');
66 tf.setFilterValue(1, 'Brisbane');
67
68 // act
69 tf.filter();
70
71 // assert
72 deepEqual(tf.getFilterableRowsNb(), 7,
73 'Number of filterable rows after row is added');
74 deepEqual(tf.getValidRowsNb(), 1,
75 'Number of valid rows after row is added');
76 deepEqual(rowsCounter.label.innerHTML, '1',
77 'Rows count after row is added');
78});
79
80test('can destroy TableFilter', function() {
81 tf.clearFilters();
82 tf.destroy();
83 deepEqual(tf.isInitialized(), false, 'tf instance destroyed');
84});
85
86module('DOM changes with paging');
87test('Sanity checks', function() {
88 // setup
89 tf1.init();
90 var rowsCounter = tf1.feature('rowsCounter');
91
92 // assert
93 deepEqual(tf1 instanceof TableFilter, true, 'TableFilter instance');
94 deepEqual(tf1.paging, true, 'Paging is enabled');
95 deepEqual(tf1.getFilterableRowsNb(), 7,
96 'Initial number of filterable rows');
97 deepEqual(tf1.getValidRowsNb(), 7, 'Initial number of valid rows');
98 notEqual(rowsCounter, null, 'RowsCounter instanciated');
99 deepEqual(rowsCounter.label.innerHTML, '1-3 / 7',
100 'Initial rows count');
101});
102
103test('Can filter and change a page after row is removed', function() {
104 // setup
105 var paging = tf1.feature('paging');
106 var rowsCounter = tf1.feature('rowsCounter');
107 tf1.clearFilters();
108 tf1.dom().deleteRow(-1);
109
110 // act
111 tf1.filter();
112 paging.setPage(2);
113
114 // assert
115 deepEqual(tf1.getFilterableRowsNb(), 6,
116 'Number of filterable rows after row is removed');
117 deepEqual(tf1.getValidRowsNb(), 6,
118 'Number of valid rows after row is removed');
119 deepEqual(rowsCounter.label.innerHTML, '4-6 / 6',
120 'Rows count after row is removed');
121});
122
123test('Can filter and change page after row is added', function() {
124 // setup
125 var paging = tf1.feature('paging');
126 var rowsCounter = tf1.feature('rowsCounter');
127 tf1.clearFilters();
128 tf1.dom().tBodies[0].appendChild(rowToAdd);
129
130 // act
131 tf1.filter();
132 paging.setPage(3);
133
134 // assert
135 deepEqual(tf1.getFilterableRowsNb(), 7,
136 'Number of filterable rows after row is added');
137 deepEqual(tf1.getValidRowsNb(), 7,
138 'Number of valid rows after row is added');
139 deepEqual(rowsCounter.label.innerHTML, '7-7 / 7',
140 'Rows count after row is added');
141});
142
143test('Can filter the added row with paging', function() {
144 // setup
145 var paging = tf1.feature('paging');
146 var rowsCounter = tf1.feature('rowsCounter');
147 tf1.setFilterValue(0, 'Adelaide');
148 tf1.setFilterValue(1, 'Brisbane');
149
150 // act
151 paging.setPage(0);
152 tf1.filter();
153
154 // assert
155 deepEqual(tf1.getFilterableRowsNb(), 7,
156 'Number of filterable rows after row is added');
157 deepEqual(tf1.getValidRowsNb(), 1,
158 'Number of valid rows after row is added');
159 deepEqual(rowsCounter.label.innerHTML, '1-1 / 1',
160 'Rows count after row is added');
161});
162
163test('can destroy TableFilter DOM elements', function() {
164 tf1.destroy();
165 deepEqual(tf1.isInitialized(), false, 'tf1 instance destroyed');
166});