1 | var tf = new TableFilter('demo', {
|
2 | base_path: '../dist/tablefilter/',
|
3 | single_filter: true
|
4 | });
|
5 | tf.init();
|
6 |
|
7 | module('Sanity checks');
|
8 | test('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 |
|
17 | module('Behaviour');
|
18 | test('Filter', function() {
|
19 | tf.setFilterValue(0, 'Sydney');
|
20 | tf.filter();
|
21 | deepEqual(tf.getValidRows().length, 4, 'Filtered rows number');
|
22 | tf.clearFilters();
|
23 | });
|
24 |
|
25 | module('Exclude columns');
|
26 | test('Exclude from filtering expected columns', function() {
|
27 |
|
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 |
|
39 | tf.setFilterValue(0, 'Canberra');
|
40 | tf.filter();
|
41 |
|
42 |
|
43 | deepEqual(tf.getValidRows().length, 0, 'Filtered rows number');
|
44 |
|
45 |
|
46 |
|
47 | tf.clearFilters();
|
48 | tf.setFilterValue(0, '20.25');
|
49 | tf.filter();
|
50 |
|
51 |
|
52 | deepEqual(tf.getValidRows().length, 0, 'Filtered rows number');
|
53 |
|
54 |
|
55 | tf.clearFilters();
|
56 | tf.setFilterValue(0, '3.1');
|
57 | tf.filter();
|
58 |
|
59 |
|
60 | deepEqual(tf.getValidRows().length, 1, 'Filtered rows number');
|
61 | });
|
62 |
|
63 | module('Styling');
|
64 | test('Can customise CSS class', function() {
|
65 |
|
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 |
|
76 | tf.init();
|
77 |
|
78 |
|
79 | deepEqual(tf.getFilterElement(0).className, 'test', 'Custom CSS class');
|
80 | });
|
81 |
|
82 | module('External single filter');
|
83 | test('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 |
|
101 | module('Behaviour');
|
102 | test('Filter', function() {
|
103 | tf.setFilterValue(0, 'Bris');
|
104 | tf.filter();
|
105 | deepEqual(tf.getValidRows().length, 2, 'Filtered rows number');
|
106 | tf.clearFilters();
|
107 | });
|
108 |
|
109 | module('Single filter with grid layout');
|
110 | test('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 |
|
126 | module('Behaviour');
|
127 | test('Filter', function() {
|
128 | tf.setFilterValue(0, 'Sydney');
|
129 | tf.filter();
|
130 | deepEqual(tf.getValidRows().length, 4, 'Filtered rows number');
|
131 | });
|
132 |
|
133 | module('Tear-down');
|
134 | test('can destroy TableFilter DOM elements', function() {
|
135 | tf.clearFilters();
|
136 | tf.destroy();
|
137 | deepEqual(tf.isInitialized(), false, 'Filters removed');
|
138 | });
|