mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-11-04 09:12:11 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			138 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			138 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
module('Dropdown - selectOnClose');
 | 
						|
 | 
						|
var $ = require('jquery');
 | 
						|
 | 
						|
var Utils = require('select2/utils');
 | 
						|
var Options = require('select2/options');
 | 
						|
 | 
						|
var SelectData = require('select2/data/select');
 | 
						|
 | 
						|
var Results = require('select2/results');
 | 
						|
var SelectOnClose = require('select2/dropdown/selectOnClose');
 | 
						|
 | 
						|
var ModifiedResults = Utils.Decorate(Results, SelectOnClose);
 | 
						|
 | 
						|
var options = new Options({
 | 
						|
  selectOnClose: true
 | 
						|
});
 | 
						|
 | 
						|
test('will not trigger if no results were given', function (assert) {
 | 
						|
  assert.expect(0);
 | 
						|
 | 
						|
  var $element = $('<select></select>');
 | 
						|
  var select = new ModifiedResults($element, options, new SelectData($element));
 | 
						|
 | 
						|
  var $dropdown = select.render();
 | 
						|
 | 
						|
  var container = new MockContainer();
 | 
						|
  select.bind(container, $('<div></div>'));
 | 
						|
 | 
						|
  select.on('select', function () {
 | 
						|
    assert.ok(false, 'The select event should not have been triggered');
 | 
						|
  });
 | 
						|
 | 
						|
  container.trigger('close');
 | 
						|
});
 | 
						|
 | 
						|
test('will not trigger if the results list is empty', function (assert) {
 | 
						|
  assert.expect(1);
 | 
						|
 | 
						|
  var $element = $('<select></select>');
 | 
						|
  var select = new ModifiedResults($element, options, new SelectData($element));
 | 
						|
 | 
						|
  var $dropdown = select.render();
 | 
						|
 | 
						|
  var container = new MockContainer();
 | 
						|
  select.bind(container, $('<div></div>'));
 | 
						|
 | 
						|
  select.on('select', function () {
 | 
						|
    assert.ok(false, 'The select event should not have been triggered');
 | 
						|
  });
 | 
						|
 | 
						|
  select.append({
 | 
						|
    results: []
 | 
						|
  });
 | 
						|
 | 
						|
  assert.equal(
 | 
						|
    $dropdown.find('li').length,
 | 
						|
    0,
 | 
						|
    'There should not be any results in the dropdown'
 | 
						|
  );
 | 
						|
 | 
						|
  container.trigger('close');
 | 
						|
});
 | 
						|
 | 
						|
test('will not trigger if no results here highlighted', function (assert) {
 | 
						|
  assert.expect(2);
 | 
						|
 | 
						|
  var $element = $('<select></select>');
 | 
						|
  var select = new ModifiedResults($element, options, new SelectData($element));
 | 
						|
 | 
						|
  var $dropdown = select.render();
 | 
						|
 | 
						|
  var container = new MockContainer();
 | 
						|
  select.bind(container, $('<div></div>'));
 | 
						|
 | 
						|
  select.on('select', function () {
 | 
						|
    assert.ok(false, 'The select event should not have been triggered');
 | 
						|
  });
 | 
						|
 | 
						|
  select.append({
 | 
						|
    results: [
 | 
						|
      {
 | 
						|
        id: '1',
 | 
						|
        text: 'Test'
 | 
						|
      }
 | 
						|
    ]
 | 
						|
  });
 | 
						|
 | 
						|
  assert.equal(
 | 
						|
    $dropdown.find('li').length,
 | 
						|
    1,
 | 
						|
    'There should be one result in the dropdown'
 | 
						|
  );
 | 
						|
 | 
						|
  assert.equal(
 | 
						|
    $.trim($dropdown.find('li').text()),
 | 
						|
    'Test',
 | 
						|
    'The result should be the same as the one we appended'
 | 
						|
  );
 | 
						|
 | 
						|
  container.trigger('close');
 | 
						|
});
 | 
						|
 | 
						|
test('will trigger if there is a highlighted result', function (assert) {
 | 
						|
  assert.expect(2);
 | 
						|
 | 
						|
  var $element = $('<select></select>');
 | 
						|
  var select = new ModifiedResults($element, options, new SelectData($element));
 | 
						|
 | 
						|
  var $dropdown = select.render();
 | 
						|
 | 
						|
  var container = new MockContainer();
 | 
						|
  select.bind(container, $('<div></div>'));
 | 
						|
 | 
						|
  select.on('select', function () {
 | 
						|
    assert.ok(true, 'The select event should have been triggered');
 | 
						|
  });
 | 
						|
 | 
						|
  select.append({
 | 
						|
    results: [
 | 
						|
      {
 | 
						|
        id: '1',
 | 
						|
        text: 'Test'
 | 
						|
      }
 | 
						|
    ]
 | 
						|
  });
 | 
						|
 | 
						|
  assert.equal(
 | 
						|
    $dropdown.find('li').length,
 | 
						|
    1,
 | 
						|
    'There should be one result in the dropdown'
 | 
						|
  );
 | 
						|
 | 
						|
  $dropdown.find('li').addClass('select2-results__option--highlighted');
 | 
						|
 | 
						|
  container.trigger('close');
 | 
						|
});
 |