1
0
mirror of synced 2024-11-26 14:56:07 +03:00

Added tests for the query function

This commit is contained in:
Kevin Brown 2014-10-16 17:55:32 -04:00
parent 6375e2ee09
commit d0fe07f954
2 changed files with 104 additions and 2 deletions

View File

@ -1,11 +1,11 @@
module('Data adapters - Select');
var SelectData = require('select2/data/select'); var SelectData = require('select2/data/select');
var $ = require('jquery'); var $ = require('jquery');
var Options = require('select2/options'); var Options = require('select2/options');
var options = new Options({}); var options = new Options({});
module('Data adapters - Select - current');
test('current gets default for single', function (assert) { test('current gets default for single', function (assert) {
var $select = $('#qunit-fixture .single'); var $select = $('#qunit-fixture .single');
@ -124,3 +124,97 @@ test('multiple adds to the old value', function (assert) {
assert.deepEqual($select.val(), ['default', '2']); assert.deepEqual($select.val(), ['default', '2']);
}); });
module('Data adapter - Select - query');
test('all options are returned with no term', function (assert) {
var $select = $('#qunit-fixture .single');
var data = new SelectData($select, options);
data.query({}, function (data) {
assert.equal(
data.length,
3,
'The number of items returned should be equal to the number of options'
);
});
});
test('the matcher checks the text', function (assert) {
var $select = $('#qunit-fixture .single');
var data = new SelectData($select, options);
data.query({
term: 'Default'
}, function (data) {
assert.equal(
data.length,
1,
'Only the "Default" option should be found'
);
});
});
test('the matcher ignores case', function (assert) {
var $select = $('#qunit-fixture .single');
var data = new SelectData($select, options);
data.query({
term: 'one'
}, function (data) {
assert.equal(
data.length,
1,
'The "One" option should still be found'
);
});
});
test('no options may be returned with no matches', function (assert) {
var $select = $('#qunit-fixture .single');
var data = new SelectData($select, options);
data.query({
term: 'qwerty'
}, function (data) {
assert.equal(
data.length,
0,
'Only matching items should be returned'
);
});
});
test('optgroup tags are marked with children', function (assert) {
var $select = $('#qunit-fixture .groups');
var data = new SelectData($select, options);
data.query({}, function (data) {
assert.ok(
'children' in data[0],
'The optgroup element should have children when queried'
);
});
});
test('empty optgroups are still shown when queried', function (assert) {
var $select = $('#qunit-fixture .groups');
var data = new SelectData($select, options);
data.query({}, function (data) {
assert.deepEqual(
data[1],
{
text: 'Empty',
children: []
},
'The empty optgroup element should still be returned when queried'
);
});
});

View File

@ -18,6 +18,14 @@
<option value="1">One</option> <option value="1">One</option>
<option>2</option> <option>2</option>
</select> </select>
<select class="groups">
<optgroup label="Test">
<option value="one">One</option>
<option value="two">Two</option>
</optgroup>
<optgroup label="Empty"></optgroup>
</select>
</div> </div>
<script src="../vendor/qunit-1.14.0.js" type="text/javascript"></script> <script src="../vendor/qunit-1.14.0.js" type="text/javascript"></script>