123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- module('Data adapters - Maximum selection length');
-
- var SelectData = require('select2/data/select');
- var MaximumSelectionLength = require('select2/data/maximumSelectionLength');
-
- var $ = require('jquery');
- var Options = require('select2/options');
- var Utils = require('select2/utils');
-
- var MaximumSelectionData = Utils.Decorate(SelectData, MaximumSelectionLength);
-
- test('0 never displays the notice', function (assert) {
- assert.expect(3);
-
- var $select = $('#qunit-fixture .multiple');
-
- var zeroOptions = new Options({
- maximumSelectionLength: 0
- });
-
- var container = new MockContainer();
- var data = new MaximumSelectionData($select, zeroOptions);
-
- data.bind(container, null);
-
- data.on('results:message', function () {
- assert.ok(false, 'The message should not be displayed');
- });
-
- data.query({
- term: ''
- }, function () {
- assert.ok(true, 'The results should be queried');
- });
-
- $select.val(['One']);
-
- data.query({
- term: ''
- }, function () {
- assert.ok(true, 'The results should be queried');
- });
-
- $select.val(['One', 'Two']);
-
- data.query({
- term: ''
- }, function () {
- assert.ok(true, 'The results should be queried');
- });
- });
-
- test('< 0 never displays the notice', function (assert) {
- assert.expect(3);
-
- var $select = $('#qunit-fixture .multiple');
-
- var negativeOptions = new Options({
- maximumSelectionLength: -1
- });
-
- var container = new MockContainer();
- var data = new MaximumSelectionData($select, negativeOptions);
-
- data.bind(container, null);
-
- data.on('results:message', function () {
- assert.ok(false, 'The message should not be displayed');
- });
-
- data.query({
- term: ''
- }, function () {
- assert.ok(true, 'The results should be queried');
- });
-
- $select.val(['One']);
-
- data.query({
- term: ''
- }, function () {
- assert.ok(true, 'The results should be queried');
- });
-
- $select.val(['One', 'Two']);
-
- data.query({
- term: ''
- }, function () {
- assert.ok(true, 'The results should be queried');
- });
- });
-
- test('triggers when >= 1 selection' , function (assert) {
- assert.expect(2);
-
- var $select = $('#qunit-fixture .multiple');
-
- var maxOfOneOptions = new Options({
- maximumSelectionLength: 1
- });
-
- var container = new MockContainer();
- var data = new MaximumSelectionData($select, maxOfOneOptions);
-
- data.bind(container, null);
-
- data.on('results:message', function () {
- assert.ok(true, 'The message should be displayed');
- });
-
- $select.val(['One']);
-
- data.query({
- term: ''
- }, function () {
- assert.ok(false, 'The results should not be queried');
- });
-
- $select.val(['One', 'Two']);
-
- data.query({
- term: ''
- }, function () {
- assert.ok(false, 'The results should not be queried');
- });
- });
-
- test('triggers after selection' , function (assert) {
- assert.expect(1);
-
- var $select = $('#qunit-fixture .multiple');
-
- var maxOfOneOptions = new Options({
- maximumSelectionLength: 1
- });
-
- var container = new MockContainer();
- var data = new MaximumSelectionData($select, maxOfOneOptions);
-
- data.bind(container, null);
-
- data.on('results:message', function () {
- assert.ok(true, 'The message should be displayed');
- });
-
- $select.val(['One']);
-
- container.trigger('select', {
- data: {}
- });
- });
|