UNPKG

3.91 kBJavaScriptView Raw
1var tf = new TableFilter('demo', {
2 base_path: '../dist/tablefilter/',
3 single_filter: true
4});
5tf.init();
6
7module('Sanity checks');
8test('Single filter', function() {
9 deepEqual(tf instanceof TableFilter, true, 'TableFilter instanciated');
10 deepEqual(tf.getFiltersId().length, 1, 'Number of filter');
11 deepEqual(tf.getFiltersId(), ['flt0_demo'], 'Filter ID');
12 deepEqual(typeof tf.getFilterElement(0), 'object', 'Filter element');
13 deepEqual(tf.getFilterElement(0).className, 'single_flt',
14 'Default CSS class');
15});
16
17module('Behaviour');
18test('Filter', function() {
19 tf.setFilterValue(0, 'Sydney');
20 tf.filter();
21 deepEqual(tf.getValidRows().length, 4, 'Filtered rows number');
22 tf.clearFilters();
23});
24
25module('Exclude columns');
26test('Exclude from filtering expected columns', function() {
27 // setup
28 tf.destroy();
29 tf = null;
30 tf = new TableFilter('demo', {
31 base_path: '../dist/tablefilter/',
32 single_filter: {
33 exclude_cols: [1, 4]
34 }
35 });
36 tf.init();
37
38 // act
39 tf.setFilterValue(0, 'Canberra'); // value in column 1
40 tf.filter();
41
42 // assert
43 deepEqual(tf.getValidRows().length, 0, 'Filtered rows number');
44
45
46 // act
47 tf.clearFilters();
48 tf.setFilterValue(0, '20.25'); // value in column 4
49 tf.filter();
50
51 // assert
52 deepEqual(tf.getValidRows().length, 0, 'Filtered rows number');
53
54 // act
55 tf.clearFilters();
56 tf.setFilterValue(0, '3.1'); // value in column 1
57 tf.filter();
58
59 // assert
60 deepEqual(tf.getValidRows().length, 1, 'Filtered rows number');
61});
62
63module('Styling');
64test('Can customise CSS class', function() {
65 // setup
66 tf.destroy();
67 tf = null;
68 tf = new TableFilter('demo', {
69 base_path: '../dist/tablefilter/',
70 single_filter: {
71 css_class: 'test'
72 }
73 });
74
75 // act
76 tf.init();
77
78 // assert
79 deepEqual(tf.getFilterElement(0).className, 'test', 'Custom CSS class');
80});
81
82module('External single filter');
83test('Sanity checks', function() {
84 tf.destroy();
85 tf = null;
86 tf = new TableFilter('demo', {
87 base_path: '../dist/tablefilter/',
88 single_filter: true,
89 external_flt_ids: ['single-search']
90 });
91 tf.init();
92
93 deepEqual(tf instanceof TableFilter, true, 'TableFilter instanciated');
94 notEqual(document.querySelector('#single-search').firstChild, null,
95 'Filter created in external container');
96 deepEqual(tf.getFiltersId().length, 1, 'Number of filter');
97 deepEqual(tf.getFiltersId(), ['flt0_demo'], 'Filter ID');
98 deepEqual(typeof tf.getFilterElement(0), 'object', 'Filter element');
99});
100
101module('Behaviour');
102test('Filter', function() {
103 tf.setFilterValue(0, 'Bris');
104 tf.filter();
105 deepEqual(tf.getValidRows().length, 2, 'Filtered rows number');
106 tf.clearFilters();
107});
108
109module('Single filter with grid layout');
110test('Sanity checks', function() {
111 tf.destroy();
112 tf = null;
113 tf = new TableFilter('demo', {
114 base_path: '../dist/tablefilter/',
115 single_filter: true,
116 grid_layout: true
117 });
118 tf.init();
119
120 deepEqual(tf instanceof TableFilter, true, 'TableFilter instanciated');
121 deepEqual(tf.getFiltersId().length, 1, 'Number of filter');
122 deepEqual(tf.getFiltersId(), ['flt0_demo'], 'Filter ID');
123 deepEqual(typeof tf.getFilterElement(0), 'object', 'Filter element');
124});
125
126module('Behaviour');
127test('Filter', function() {
128 tf.setFilterValue(0, 'Sydney');
129 tf.filter();
130 deepEqual(tf.getValidRows().length, 4, 'Filtered rows number');
131});
132
133module('Tear-down');
134test('can destroy TableFilter DOM elements', function() {
135 tf.clearFilters();
136 tf.destroy();
137 deepEqual(tf.isInitialized(), false, 'Filters removed');
138});