Skip to content

Commit

Permalink
Added tests for focusing results
Browse files Browse the repository at this point in the history
This adds three tests related to focusing selected items in the results.
The tests are for e897d00 and 9f58128.
  • Loading branch information
kevin-brown committed May 15, 2016
1 parent 9f58128 commit acd3306
Show file tree
Hide file tree
Showing 2 changed files with 140 additions and 0 deletions.
138 changes: 138 additions & 0 deletions tests/results/focusing-tests.js
@@ -0,0 +1,138 @@
module('Results - highlighting results');

test('results:all with no data skips results:focus', function (assert) {
expect(0);

var $ = require('jquery');

var $select = $('<select></select>');
var $parent = $('<div></div>');

var $container = $('<span></span>');
var container = new MockContainer();

$parent.appendTo($('#qunit-fixture'));
$select.appendTo($parent);

var Utils = require('select2/utils');
var Options = require('select2/options');

var Results = require('select2/results');

var results = new Results($select, new Options({}));

// Fake the data adapter for the `setClasses` method
results.data = {};
results.data.current = function (callback) {
callback([{ id: 'test' }]);
};

results.render();

results.bind(container, $container);

results.on('results:focus', function (params) {
assert.ok(false, 'The results:focus event was triggered');
});

container.trigger('results:all', {
data: {
results: []
}
});
});

test('results:all triggers results:focus on the first item', function (assert) {
expect(2);

var $ = require('jquery');

var $select = $('<select></select>');
var $parent = $('<div></div>');

var $container = $('<span></span>');
var container = new MockContainer();

$parent.appendTo($('#qunit-fixture'));
$select.appendTo($parent);

var Utils = require('select2/utils');
var Options = require('select2/options');

var Results = require('select2/results');

var results = new Results($select, new Options({}));

// Fake the data adapter for the `setClasses` method
results.data = {};
results.data.current = function (callback) {
callback([{ id: 'test' }]);
};

results.render();

results.bind(container, $container);

results.on('results:focus', function (params) {
assert.equal(params.data.id, 'test');
assert.equal(params.data.text, 'Test');
});

container.trigger('results:all', {
data: {
results: [
{
id: 'test',
text: 'Test'
}
]
}
});
});

test('results:append does not trigger results:focus', function (assert) {
expect(0);

var $ = require('jquery');

var $select = $('<select></select>');
var $parent = $('<div></div>');

var $container = $('<span></span>');
var container = new MockContainer();

$parent.appendTo($('#qunit-fixture'));
$select.appendTo($parent);

var Utils = require('select2/utils');
var Options = require('select2/options');

var Results = require('select2/results');

var results = new Results($select, new Options({}));

// Fake the data adapter for the `setClasses` method
results.data = {};
results.data.current = function (callback) {
callback([{ id: 'test' }]);
};

results.render();

results.bind(container, $container);

results.on('results:focus', function () {
assert.ok(false, 'The results:focus event was triggered');
});

container.trigger('results:append', {
data: {
results: [
{
id: 'test',
text: 'Test'
}
]
}
});
});
2 changes: 2 additions & 0 deletions tests/unit.html
Expand Up @@ -79,6 +79,8 @@
<script src="options/translation-tests.js" type="text/javascript"></script>
<script src="options/width-tests.js" type="text/javascript"></script>

<script src="results/focusing-tests.js" type="text/javascript"></script>

<script src="selection/allowClear-tests.js" type="text/javascript"></script>
<script src="selection/containerCss-tests.js" type="text/javascript"></script>
<script src="selection/multiple-tests.js" type="text/javascript"></script>
Expand Down

0 comments on commit acd3306

Please sign in to comment.