Skip to content

Commit

Permalink
added tests and default option for scrollAfterSelect
Browse files Browse the repository at this point in the history
  • Loading branch information
boweihan committed Dec 6, 2017
1 parent b0ee5d5 commit 3e74040
Show file tree
Hide file tree
Showing 2 changed files with 104 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/js/select2/defaults.js
Expand Up @@ -365,7 +365,7 @@ define([
maximumSelectionLength: 0,
minimumResultsForSearch: 0,
selectOnClose: false,
scrollOnSelect: true,
scrollAfterSelect: true,
sorter: function (data) {
return data;
},
Expand Down
103 changes: 103 additions & 0 deletions tests/results/focusing-tests.js
Expand Up @@ -135,4 +135,107 @@ test('results:append does not trigger results:focus', function (assert) {
]
}
});
});

test('scrollAfterSelect triggers results:focus by default', function (assert) {
assert.expect(3);

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 options = new Options({});
var results = new Results($select, 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);

// check that default for scrollAfterSelect is true
assert.equal(options.get('scrollAfterSelect'), true);

results.append({
results: [
{
id: 'test',
text: 'Test'
}
]
});

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

container.trigger('select', {});
});

test('!scrollAfterSelect does not trigger results:focus', function (assert) {
assert.expect(1);

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 options = new Options({ scrollAfterSelect: false });
var results = new Results($select, 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);

// check that default for scrollAfterSelect is false
assert.equal(options.get('scrollAfterSelect'), false);

results.append({
results: [
{
id: 'test',
text: 'Test'
}
]
});

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

container.trigger('select', {});
});

0 comments on commit 3e74040

Please sign in to comment.