/* global QUnit, SelectBox */
'use strict';
QUnit.module('admin.SelectBox');
QUnit.test('init: no options', function(assert) {
    const $ = django.jQuery;
    $('').appendTo('#qunit-fixture');
    SelectBox.init('id');
    assert.equal(SelectBox.cache.id.length, 0);
});
QUnit.test('filter', function(assert) {
    const $ = django.jQuery;
    $('').appendTo('#qunit-fixture');
    $('').appendTo('#id');
    $('').appendTo('#id');
    SelectBox.init('id');
    assert.equal($('#id option').length, 2);
    SelectBox.filter('id', "A");
    assert.equal($('#id option').length, 1);
    assert.equal($('#id option').text(), "A");
});
QUnit.test('preserve scroll position', function(assert) {
    const $ = django.jQuery;
    const optionsCount = 100;
    $('').appendTo('#qunit-fixture');
    $('').appendTo('#qunit-fixture');
    const fromSelectBox = document.getElementById('from_id');
    const toSelectBox = document.getElementById('to_id');
    for (let i = 0; i < optionsCount; i++) {
        fromSelectBox.appendChild(new Option());
    }
    SelectBox.init('from_id');
    SelectBox.init('to_id');
    const selectedOptions = [97, 98, 99];
    for (const index of selectedOptions) {
        fromSelectBox.options[index].selected = true;
        fromSelectBox.options[index].scrollIntoView();
    }
    assert.equal(fromSelectBox.options.length, optionsCount);
    SelectBox.move('from_id', 'to_id');
    assert.equal(fromSelectBox.options.length, optionsCount - selectedOptions.length);
    assert.equal(toSelectBox.options.length, selectedOptions.length);
    assert.notEqual(fromSelectBox.scrollTop, 0);
});