Skip to content

Commit 69c2b81

Browse files
committed
Re-build a test suite
1 parent 55509e3 commit 69c2b81

File tree

5 files changed

+270
-257
lines changed

5 files changed

+270
-257
lines changed

.gitignore

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
/node_modules
2+
/yarn.lock
3+
/package-lock.json
4+
/*.log

.npmignore

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
/test
22
/demo
33
/.editorconfig
4+
/node_modules
5+
/yarn.lock
6+
/package-lock.json
7+
/*.log

package.json

+6-1
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,10 @@
1515
"ui",
1616
"uitablefilter"
1717
],
18-
"readme": "https://github.com/gregwebs/jquery-uitablefilter#readme"
18+
"readme": "https://github.com/gregwebs/jquery-uitablefilter#readme",
19+
"dependencies": {},
20+
"devDependencies": {
21+
"chai": "^4.2.0",
22+
"mocha": "^7.1.1"
23+
}
1924
}

test/tests.js

+167
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
var expect = chai.expect;
2+
3+
describe('has_words', () => {
4+
before(function() {
5+
thw = 'test has words'
6+
has_words = $.uiTableFilter.has_words
7+
});
8+
9+
it('should return true when word is present', function() {
10+
expect(has_words(thw, ['t'])).to.be.true;
11+
expect(has_words(thw, ['t'])).to.be.true;
12+
expect(has_words(thw, ['te'])).to.be.true;
13+
expect(has_words(thw, ['tes'])).to.be.true;
14+
expect(has_words(thw, ['test'])).to.be.true;
15+
expect(has_words(thw, [' has '])).to.be.true;
16+
expect(has_words(thw, ['words'])).to.be.true;
17+
expect(has_words(thw, ['test has words'])).to.be.true;
18+
expect(has_words(thw, ['test', 'has'])).to.be.true;
19+
expect(has_words(thw, ['test', 'has', 'words'])).to.be.true;
20+
});
21+
it('should return false when word is not present', function() {
22+
expect(has_words(thw, ['z'])).to.be.false;
23+
expect(has_words(thw, ['tz'])).to.be.false;
24+
expect(has_words(thw, ['t', 'z'])).to.be.false;
25+
expect(has_words(thw, ['test has z'])).to.be.false;
26+
expect(has_words(thw, ['test', 'has', 'z'])).to.be.false;
27+
});
28+
it('should be optionally case sensitive', function() {
29+
expect(has_words(thw, ['T'], true)).to.be.false;
30+
expect(has_words(thw, ['tE'], true)).to.be.false;
31+
expect(has_words(thw, ['t', 'wOr'], true)).to.be.false;
32+
expect(has_words(thw, ['test has'], false)).to.be.true;
33+
});
34+
});
35+
36+
describe('filterNormalTable', () => {
37+
before(function() {
38+
var theTable = $("#testtable")
39+
filter = function (pattern) {
40+
$.uiTableFilter(theTable, pattern, 0);
41+
}
42+
43+
resetFilter = function () {
44+
filter('');
45+
}
46+
});
47+
48+
after(function() {
49+
resetFilter();
50+
});
51+
52+
it('no filter, all rows must be visible', function() {
53+
54+
filter('')
55+
expect($('#headrow:visible').html()).to.equal($('#headrow').html())
56+
expect($('#testrow1:visible').html()).to.equal($('#testrow1').html())
57+
expect($('#testrow2:visible').html()).to.equal($('#testrow2').html())
58+
});
59+
60+
it('simple filter 1', function() {
61+
62+
filter('turtle')
63+
expect($('#headrow:visible').html()).to.equal($('#headrow').html())
64+
expect($('#testrow1:visible').html()).to.equal($('#testrow1').html())
65+
expect($('#testrow2:visible').html()).to.equal(undefined);
66+
});
67+
68+
it('simple filter 2', function() {
69+
70+
filter('dog')
71+
expect($('#headrow:visible').html()).to.equal($('#headrow').html())
72+
expect($('#testrow1:visible').html()).to.equal($('#testrow1').html())
73+
expect($('#testrow2:visible').html()).to.equal(undefined);
74+
});
75+
76+
it('simple filter 3', function() {
77+
78+
filter('whale')
79+
expect($('#headrow:visible').html()).to.equal($('#headrow').html())
80+
expect($('#testrow1:visible').html()).to.equal(undefined);
81+
expect($('#testrow2:visible').html()).to.equal($('#testrow2').html())
82+
});
83+
84+
it('simple head filter (head must still be visible)', function() {
85+
86+
filter('sea')
87+
expect($('#headrow:visible').html()).to.equal($('#headrow').html())
88+
expect($('#testrow1:visible').html()).to.equal(undefined);
89+
expect($('#testrow2:visible').html()).to.equal(undefined);
90+
});
91+
92+
it('simple filter an resetFilter', function() {
93+
filter('turtle')
94+
expect($('#headrow:visible').html()).to.equal($('#headrow').html())
95+
expect($('#testrow1:visible').html()).to.equal($('#testrow1').html())
96+
expect($('#testrow2:visible').html()).to.equal(undefined);
97+
filter('')
98+
expect($('#headrow:visible').html()).to.equal($('#headrow').html())
99+
expect($('#testrow1:visible').html()).to.equal($('#testrow1').html())
100+
expect($('#testrow2:visible').html()).to.equal($('#testrow2').html())
101+
});
102+
});
103+
104+
105+
describe('filterInnerTable', () => {
106+
before(function() {
107+
var theTable = $("#testtable2")
108+
filter = function (pattern) {
109+
$.uiTableFilter(theTable, pattern, 0);
110+
}
111+
112+
resetFilter = function () {
113+
filter('');
114+
}
115+
});
116+
117+
after(function() {
118+
resetFilter();
119+
});
120+
121+
it('no filter, all rows must be visible', function() {
122+
123+
filter('')
124+
expect($('#headrow2:visible').html()).to.equal($('#headrow2').html())
125+
expect($('#testrow2.1:visible').html()).to.equal($('#testrow2.1').html())
126+
expect($('#testrow2.2:visible').html()).to.equal($('#testrow2.2').html())
127+
expect($('#innerHeadRow:visible').html()).to.equal($('#innerHeadRow').html())
128+
expect($('#innerRow1:visible').html()).to.equal($('#innerRow1').html())
129+
expect($('#innerRow2:visible').html()).to.equal($('#innerRow2').html())
130+
});
131+
132+
133+
it('filter for non existing value', function() {
134+
135+
filter('blaBlubb')
136+
expect($('#headrow2:visible').html()).to.equal($('#headrow2').html())
137+
expect($('#testrow2.1:visible').html()).to.equal($('#testrow2.1').html())
138+
expect($('#testrow2.2:visible').html()).to.equal(undefined);
139+
expect($('#innerHeadRow:visible').html()).to.equal($('#innerHeadRow').html())
140+
expect($('#innerRow1:visible').html()).to.equal($('#innerRow1').html())
141+
expect($('#innerRow2:visible').html()).to.equal($('#innerRow2').html())
142+
});
143+
144+
it('filter for existing value (complete inner table must disappear)', function() {
145+
146+
filter('whale')
147+
expect($('#headrow2:visible').html()).to.equal($('#headrow2').html())
148+
expect($('#testrow2.1:visible').html()).to.equal(undefined);
149+
expect($('#testrow2.2:visible').html()).to.equal(undefined);
150+
expect($('#innerHeadRow:visible').html()).to.equal($('#innerHeadRow').html())
151+
expect($('#innerRow1:visible').html()).to.equal($('#innerRow1').html())
152+
expect($('#innerRow2:visible').html()).to.equal($('#innerRow2').html())
153+
});
154+
155+
it('filter for existing value which is in the inner table (all rows should disappear, but inner table should be (theoreticaly) visible)', function() {
156+
157+
filter('turtle')
158+
expect($('#headrow2:visible').html()).to.equal($('#headrow2').html())
159+
expect($('#testrow2.1:visible').html()).to.equal($('#testrow2.1').html())
160+
expect($('#testrow2.2:visible').html()).to.equal(undefined);
161+
expect($('#innerHeadRow:visible').html()).to.equal($('#innerHeadRow').html())
162+
expect($('#innerRow1:visible').html()).to.equal($('#innerRow1').html())
163+
expect($('#innerRow2:visible').html()).to.equal($('#innerRow2').html())
164+
});
165+
166+
167+
});

0 commit comments

Comments
 (0)