UNPKG

4.86 kBJavaScriptView Raw
1(function(win, TableFilter){
2
3 var tf = new TableFilter('demo', {
4 base_path: '../dist/tablefilter/',
5 grid: false
6 });
7 tf.init();
8
9 module('Sanity checks');
10 test('No filters', function() {
11 deepEqual(tf instanceof TableFilter, true, 'TableFilter instanciated');
12 deepEqual(tf.fltGrid, false, 'fltGrid property set false');
13 deepEqual(tf.getFilterElement(0), null,
14 'No filter element for column 0');
15 deepEqual(tf.refRow, 1, 'Reference row index');
16 });
17 test('cannot filter table', function() {
18 // setup
19 var ct = 0;
20 tf.emitter.on(['before-filtering'], function() {
21 ct++;
22 });
23
24 // act
25 tf.filter();
26
27 // assert
28 deepEqual(ct, 0, 'Table not filtered');
29 });
30 test('cannot getFilterVlue', function() {
31 // act
32 var filterValue = tf.getFilterValue(1);
33
34 // assert
35 deepEqual(filterValue, undefined, 'Returned filter value: undefined');
36 });
37 test('cannot getFiltersValue', function() {
38 // act
39 var filtersValue = tf.getFiltersValue();
40
41 // assert
42 deepEqual(filtersValue, undefined, 'Returned filter values: undefined');
43 });
44 test('cannot getFilterId', function() {
45 // act
46 var filterId = tf.getFilterId(0);
47
48 // assert
49 deepEqual(filterId, undefined, 'Returned filter ID: undefined');
50 });
51 test('cannot getFiltersByType', function() {
52 // act
53 var filters = tf.getFiltersByType('input');
54
55 // assert
56 deepEqual(filters, undefined, 'Returned filters ID: undefined');
57 });
58 test('cannot setFilterValue', function() {
59 // setup
60 var getFilterElement = tf.getFilterElement;
61 var ct = 0;
62 tf.getFilterElement = function(){
63 ct++;
64 };
65
66 // act
67 tf.setFilterValue(1, 'hello');
68
69 // assert
70 deepEqual(ct, 0, 'getFilterElement method not called');
71
72 tf.getFilterElement = getFilterElement;
73 });
74 test('cannot clearFilters', function() {
75 // setup
76 var ct = 0;
77 tf.emitter.on(['before-clearing-filters'], function() {
78 ct++;
79 });
80
81 // act
82 tf.clearFilters();
83
84 // assert
85 deepEqual(ct, 0, 'Filters not cleared');
86 });
87
88 test('cannot _initNoFilters if there are filters', function() {
89 // setup
90 tf.fltGrid = true;
91 var getRowsNb = this.getRowsNb;
92 var ct = 0;
93 tf.getRowsNb = function(){
94 ct++;
95 };
96
97 // act
98 tf._initNoFilters();
99
100 // assert
101 deepEqual(ct, 0, '_initNoFilters not executed');
102
103 tf.getRowsNb = getRowsNb;
104 });
105
106 module('Paging on');
107 test('Paging with no filters', function() {
108 // setup
109 tf.destroy();
110 tf = null;
111 tf = new TableFilter('demo', {
112 base_path: '../dist/tablefilter/',
113 grid: false,
114 paging: true,
115 paging_length: 3
116 });
117 var ct = 0;
118 tf.emitter.on(['row-validated'], function() {
119 ct++;
120 });
121
122 // act
123 tf.init();
124 deepEqual(tf.getFilterElement(4), null,
125 'No filter element for column 4');
126
127 // assert
128 deepEqual(tf.fltGrid, false, 'fltGrid property set false');
129 deepEqual(tf.refRow, 1, 'Reference row index');
130 deepEqual(ct, 0, 'tf.validateAllRows not called on Paging init');
131 });
132
133 module('Grid-layout on');
134 test('Grid layout with no filters', function() {
135 // setup
136 tf.destroy();
137 tf = null;
138 tf = new TableFilter('demo', {
139 base_path: '../dist/tablefilter/',
140 col_width: ['100px','100px','100px','100px','100px'],
141 grid_layout: {
142 filters: false
143 }
144 });
145
146 // act
147 tf.init();
148
149 // assert
150 deepEqual(tf.fltGrid, false, 'fltGrid property set false');
151 deepEqual(tf.getFilterElement(2), null,
152 'No filter element for column 2');
153 deepEqual(tf.refRow, 0, 'Reference row index');
154
155 tf.setFilterValue(1, 'Bris');
156 deepEqual(tf.getValidRows().length, 0,
157 'does not fail on setFilterValue');
158
159 // act
160 var filtersRow = tf.feature('gridLayout').createFiltersRow();
161
162 // assert
163 deepEqual(filtersRow.cells.length, 0, 'Filters row is empty');
164 });
165
166 module('Tear-down');
167 test('TableFilter removed', function() {
168 tf.destroy();
169 deepEqual(tf.isInitialized(), false, 'Filters removed');
170 });
171
172})(window, TableFilter);