e8fd5a0352
This finally fixes and adds some integration tests to make sure that `select2('data')` works as we are expecting. This also adds tests for `select2('val')` and fixes undefined variable issues that were spotted because of these tests. We also no longer date stamp distribution builds. This closes https://github.com/select2/select2/issues/3104.
140 lines
2.6 KiB
JavaScript
140 lines
2.6 KiB
JavaScript
module('select2(data)');
|
|
|
|
var $ = require('jquery');
|
|
var Select2 = require('select2/core');
|
|
var Options = require('select2/options');
|
|
|
|
test('single default selection returned', function (assert) {
|
|
var $select = $(
|
|
'<select>' +
|
|
'<option>One</option>' +
|
|
'<option>Two</option>' +
|
|
'<option value="3" selected>Three</option>' +
|
|
'</select>'
|
|
);
|
|
var options = new Options({});
|
|
|
|
var select = new Select2($select, options);
|
|
|
|
var items = select.data();
|
|
|
|
assert.equal(
|
|
items.length,
|
|
1,
|
|
'The one selected item should be returned'
|
|
);
|
|
|
|
var first = items[0];
|
|
|
|
assert.equal(
|
|
first.id,
|
|
'3',
|
|
'The first option was correct'
|
|
);
|
|
|
|
assert.equal(
|
|
first.text,
|
|
'Three',
|
|
'The first option was correct'
|
|
);
|
|
});
|
|
|
|
test('multiple default selections returned', function (assert) {
|
|
var $select = $(
|
|
'<select multiple>' +
|
|
'<option selected>One</option>' +
|
|
'<option>Two</option>' +
|
|
'<option value="3" selected>Three</option>' +
|
|
'</select>'
|
|
);
|
|
var options = new Options({});
|
|
|
|
var select = new Select2($select, options);
|
|
|
|
var items = select.data();
|
|
|
|
assert.equal(
|
|
items.length,
|
|
2,
|
|
'The two selected items should be returned'
|
|
);
|
|
|
|
var first = items[0];
|
|
|
|
assert.equal(
|
|
first.id,
|
|
'One',
|
|
'The first option was correct'
|
|
);
|
|
|
|
var second = items[1];
|
|
|
|
assert.equal(
|
|
second.id,
|
|
'3',
|
|
'The option value should be pulled correctly'
|
|
);
|
|
});
|
|
|
|
module('select2(val)');
|
|
|
|
test('single value matches jquery value', function (assert) {
|
|
var $select = $(
|
|
'<select>' +
|
|
'<option>One</option>' +
|
|
'<option>Two</option>' +
|
|
'<option value="3" selected>Three</option>' +
|
|
'</select>'
|
|
);
|
|
var options = new Options({});
|
|
|
|
var select = new Select2($select, options);
|
|
|
|
var value = select.val();
|
|
|
|
assert.equal(
|
|
value,
|
|
'3',
|
|
'The value should match the option tag attribute'
|
|
);
|
|
|
|
assert.equal(
|
|
value,
|
|
$select.val(),
|
|
'The value should match the jquery value'
|
|
);
|
|
});
|
|
|
|
test('multiple value matches the jquery value', function (assert) {
|
|
var $select = $(
|
|
'<select multiple>' +
|
|
'<option selected>One</option>' +
|
|
'<option>Two</option>' +
|
|
'<option value="3" selected>Three</option>' +
|
|
'</select>'
|
|
);
|
|
var options = new Options({});
|
|
|
|
var select = new Select2($select, options);
|
|
|
|
var value = select.val();
|
|
|
|
assert.equal(
|
|
value.length,
|
|
2,
|
|
'Two options should be selected'
|
|
);
|
|
|
|
assert.deepEqual(
|
|
value,
|
|
['One', '3'],
|
|
'The values should match the option tag attribute'
|
|
);
|
|
|
|
assert.deepEqual(
|
|
value,
|
|
$select.val(),
|
|
'The values should match the jquery values'
|
|
);
|
|
});
|