Skip to content

Commit 25926de

Browse files
committed
Test cleanup – did away with problematic "test" global and explicit need to teardown (now done automatically).
1 parent aaf67b5 commit 25926de

File tree

8 files changed

+155
-192
lines changed

8 files changed

+155
-192
lines changed

src/selectize.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ $.extend(Selectize.prototype, {
200200
delete settings.items;
201201
}
202202

203-
self.isRequired = self.$input.is(":required");
203+
self.isRequired = self.$input.is(':required');
204204
self.$control_input.prop('required', self.isRequired && !self.items.length);
205205

206206
// feature detect for the validation API

test/api.js

+47-62
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,12 @@
33
describe('API', function() {
44

55
describe('disable()', function() {
6+
var test;
7+
68
before(function() {
79
test = setup_test('<select>', {});
810
test.selectize.disable();
911
});
10-
after(function() {
11-
test.teardown();
12-
});
1312
it('should set "disabled" class', function() {
1413
expect(test.selectize.$control.hasClass('disabled')).to.be.equal(true);
1514
});
@@ -22,13 +21,12 @@
2221
});
2322

2423
describe('enable()', function() {
24+
var test;
25+
2526
before(function() {
2627
test = setup_test('<select disabled>', {});
2728
test.selectize.enable();
2829
});
29-
after(function() {
30-
test.teardown();
31-
});
3230
it('should remove "disabled" class', function() {
3331
expect(test.selectize.$control.hasClass('disabled')).to.be.equal(false);
3432
});
@@ -41,23 +39,27 @@
4139
});
4240

4341
describe('focus()', function() {
44-
before(function(done) {
45-
test = setup_test('<select>', {});
42+
it('should set isFocused property to true', function(done) {
43+
var test = setup_test('<select>', {});
4644
test.selectize.focus();
47-
window.setTimeout(done, 5);
48-
});
49-
after(function() {
50-
test.teardown();
51-
});
52-
it('should set isFocused property to true', function() {
53-
expect(test.selectize.isFocused).to.be.equal(true);
45+
window.setTimeout(function() {
46+
expect(test.selectize.isFocused).to.be.equal(true);
47+
done();
48+
}, 5);
5449
});
55-
it('should give the control focus', function() {
56-
expect(has_focus(test.selectize.$control_input[0])).to.be.equal(true);
50+
it('should give the control focus', function(done) {
51+
var test = setup_test('<select>', {});
52+
test.selectize.focus();
53+
window.setTimeout(function() {
54+
expect(has_focus(test.selectize.$control_input[0])).to.be.equal(true);
55+
done();
56+
}, 5);
5757
});
5858
});
5959

6060
describe('blur()', function() {
61+
var test;
62+
6163
before(function(done) {
6264
test = setup_test('<select>', {});
6365
test.selectize.focus();
@@ -66,9 +68,6 @@
6668
window.setTimeout(done, 5);
6769
}, 5);
6870
});
69-
after(function() {
70-
test.teardown();
71-
});
7271
it('should set isFocused property to false', function() {
7372
expect(test.selectize.isFocused).to.be.equal(false);
7473
});
@@ -79,7 +78,7 @@
7978

8079
describe('createItem()', function() {
8180
it('should fail if non-object returned by "create" callback', function() {
82-
test = setup_test('<select>', {
81+
var test = setup_test('<select>', {
8382
valueField: 'value',
8483
labelField: 'value',
8584
create: function(input) {
@@ -90,7 +89,6 @@
9089
test.selectize.$control_input.val('test');
9190
test.selectize.createItem();
9291
expect(test.selectize.items.length).to.be.equal(0);
93-
test.teardown();
9492

9593
test = setup_test('<select>', {
9694
valueField: 'value',
@@ -103,10 +101,9 @@
103101
test.selectize.$control_input.val('test');
104102
test.selectize.createItem();
105103
expect(test.selectize.items.length).to.be.equal(0);
106-
test.teardown();
107104
});
108105
it('should add option upon completion (synchronous)', function() {
109-
test = setup_test('<select>', {
106+
var test = setup_test('<select>', {
110107
valueField: 'value',
111108
labelField: 'value',
112109
create: function(input) {
@@ -117,17 +114,15 @@
117114
test.selectize.$control_input.val('test');
118115
test.selectize.createItem();
119116
expect(test.selectize.options).to.have.property('test');
120-
test.teardown();
121117
});
122118
it('should add option upon completion (asynchronous)', function(done) {
123-
test = setup_test('<select>', {
119+
var test = setup_test('<select>', {
124120
valueField: 'value',
125121
labelField: 'value',
126122
create: function(input, callback) {
127123
window.setTimeout(function() {
128124
callback({value: input});
129125
expect(test.selectize.options).to.have.property('test');
130-
test.teardown();
131126
done();
132127
}, 0);
133128
}
@@ -139,12 +134,11 @@
139134
});
140135

141136
describe('addOptionGroup()', function() {
137+
var test;
138+
142139
before(function() {
143140
test = setup_test('<select>', {valueField: 'value', labelField: 'value'});
144141
});
145-
after(function() {
146-
test.teardown();
147-
});
148142
it('should register group', function() {
149143
var data = {label: 'Group Label'};
150144
test.selectize.addOptionGroup('group_id', data);
@@ -154,12 +148,11 @@
154148
});
155149

156150
describe('addOption()', function() {
151+
var test;
152+
157153
before(function() {
158154
test = setup_test('<select>', {valueField: 'value', labelField: 'value'});
159155
});
160-
after(function() {
161-
test.teardown();
162-
});
163156
it('should allow string values', function() {
164157
test.selectize.addOption({value: 'stringtest'});
165158
expect(test.selectize.options).to.have.property('stringtest');
@@ -190,6 +183,8 @@
190183
});
191184

192185
describe('addItem()', function() {
186+
var test;
187+
193188
before(function() {
194189
test = setup_test('<select multiple>', {
195190
valueField: 'value',
@@ -209,9 +204,6 @@
209204
]
210205
});
211206
});
212-
after(function() {
213-
test.teardown();
214-
});
215207
it('should update "items" array', function() {
216208
test.selectize.addItem('b');
217209
expect(test.selectize.items.indexOf('b')).to.be.equal(0);
@@ -245,6 +237,8 @@
245237
});
246238

247239
describe('updateOption()', function() {
240+
var test;
241+
248242
before(function() {
249243
test = setup_test('<select multiple>', {
250244
valueField: 'value',
@@ -268,9 +262,6 @@
268262
items: ['e','f']
269263
});
270264
});
271-
after(function() {
272-
test.teardown();
273-
});
274265
it('should update option data', function() {
275266
test.selectize.updateOption('a', {value: 'a', test: 'test'});
276267
expect(test.selectize.options).to.have.property('a');
@@ -311,6 +302,8 @@
311302
});
312303

313304
describe('getOption()', function() {
305+
var test;
306+
314307
before(function() {
315308
test = setup_test('<select>', {
316309
valueField: 'value',
@@ -329,9 +322,6 @@
329322
});
330323
test.selectize.refreshOptions(true);
331324
});
332-
after(function() {
333-
test.teardown();
334-
});
335325
it('should allow string values', function() {
336326
expect(test.selectize.getOption('a')).to.be.ok;
337327
expect(test.selectize.getOption('a').length).to.be.equal(1);
@@ -367,6 +357,8 @@
367357
});
368358

369359
describe('getItem()', function() {
360+
var test;
361+
370362
before(function() {
371363
test = setup_test('<select multiple>', {
372364
valueField: 'value',
@@ -379,14 +371,11 @@
379371
{value: '\''},
380372
{value: '"'},
381373
{value: '\\\''},
382-
{value: '\\"'},
374+
{value: '\\"'}
383375
],
384376
items: ['0','1','a','b','\'','"','\\\'','\\"']
385377
});
386378
});
387-
after(function() {
388-
test.teardown();
389-
});
390379
it('should allow string values', function() {
391380
expect(test.selectize.getItem('a')).to.be.ok;
392381
expect(test.selectize.getItem('a').length).to.be.equal(1);
@@ -420,6 +409,8 @@
420409
});
421410

422411
describe('clear()', function() {
412+
var test;
413+
423414
before(function() {
424415
test = setup_test('<select multiple>', {
425416
valueField: 'value',
@@ -433,9 +424,6 @@
433424
items: ['1','2','3']
434425
});
435426
});
436-
after(function() {
437-
test.teardown();
438-
});
439427
it('should empty "items" array', function() {
440428
test.selectize.clear();
441429
expect(test.selectize.items.length).to.be.equal(0);
@@ -457,6 +445,8 @@
457445

458446
describe('search()', function() {
459447
it('should throw error if "score" setting does not return a function', function() {
448+
var test;
449+
460450
expect(function() {
461451
test = setup_test('<select multiple>', {
462452
valueField: 'value',
@@ -469,9 +459,10 @@
469459
});
470460
test.selectize.search('hello');
471461
}).to.throw(Error);
472-
test.teardown();
473462
});
474463
it('should not throw error if "score" setting does return a function', function() {
464+
var test;
465+
475466
expect(function() {
476467
test = setup_test('<select multiple>', {
477468
valueField: 'value',
@@ -486,13 +477,12 @@
486477
});
487478
test.selectize.search('hello');
488479
}).to.not.throw(Error);
489-
test.teardown();
490480
});
491481
});
492482

493483
describe('getScoreFunction()', function() {
494484
it('should return an function that returns a number', function() {
495-
test = setup_test('<select multiple>', {
485+
var test = setup_test('<select multiple>', {
496486
valueField: 'value',
497487
labelField: 'value',
498488
searchField: 'value',
@@ -523,34 +513,29 @@
523513
return false;
524514
};
525515
it('should remove control from DOM', function() {
526-
test = setup_test('<select>', {});
516+
var test = setup_test('<select>', {});
527517
test.selectize.destroy();
528518
expect($.contains(document.documentElement, test.selectize.$wrapper[0])).to.be.equal(false);
529-
test.teardown();
530519
});
531520
it('should delete "selectize" reference on original input element', function() {
532-
test = setup_test('<select>', {});
521+
var test = setup_test('<select>', {});
533522
test.selectize.destroy();
534523
expect(test.selectize.$input[0].selectize).to.be.equal(undefined);
535-
test.teardown();
536524
});
537525
it('should unbind events on window', function() {
538-
test = setup_test('<select>', {});
526+
var test = setup_test('<select>', {});
539527
test.selectize.destroy();
540528
expect(has_namespaced_event($(window), test.selectize.eventNS)).to.be.equal(false);
541-
test.teardown();
542529
});
543530
it('should unbind events on document', function() {
544-
test = setup_test('<select>', {});
531+
var test = setup_test('<select>', {});
545532
test.selectize.destroy();
546533
expect(has_namespaced_event($(document), test.selectize.eventNS)).to.be.equal(false);
547-
test.teardown();
548534
});
549535
it('should unbind events on <body>', function() {
550-
test = setup_test('<select>', {});
536+
var test = setup_test('<select>', {});
551537
test.selectize.destroy();
552538
expect(has_namespaced_event($('body'), test.selectize.eventNS)).to.be.equal(false);
553-
test.teardown();
554539
});
555540
});
556541

0 commit comments

Comments
 (0)