// searchable_select
test( "searchable_select check", function() {
$('#forms').append('
searchable_select check
')
var el = $('#form1')
var defaults = {
searchable_select2: 'bbb',
}
var options = {
'aaa': 'aaa display',
'bbb': 'bbb display',
'ccc': 'ccc display',
}
new App.ControllerForm({
el: el,
model: {
configure_attributes: [
{
name: 'searchable_select1',
display: 'SearchableSelect1',
tag: 'searchable_select',
options: options,
null: true,
default: defaults['searchable_select1']
},
{
name: 'searchable_select2',
display: 'SearchableSelect2',
tag: 'searchable_select',
options: options,
null: false,
default: defaults['searchable_select2']
},
{
name: 'searchable_select3',
display: 'SearchableSelect3',
tag: 'searchable_select',
options: options,
default: defaults['searchable_select3'],
null: true,
unknown: true
},
]
},
autofocus: true
})
var params = App.ControllerForm.params(el)
var test_params = {
searchable_select1: '',
searchable_select2: 'bbb',
searchable_select3: '',
}
deepEqual(params, test_params, 'form param check')
// change selection
$('[name="searchable_select1"].js-shadow + .js-input').focus().val('').trigger('input')
var $element = $('[name="searchable_select1"]').closest('.searchableSelect').find('.js-optionsList')
var entries = $element.find('li:not(.is-hidden)').length
equal(entries, 3, 'dropdown count')
$('[name="searchable_select1"].js-shadow + .js-input').focus().val('ccc display').trigger('input')
var entries = $element.find('li:not(.is-hidden)').length
equal(entries, 1, 'dropdown count')
$element.find('li:not(.is-hidden)').first().click()
params = App.ControllerForm.params(el)
test_params = {
searchable_select1: 'ccc',
searchable_select2: 'bbb',
searchable_select3: '',
}
deepEqual(params, test_params, 'form param check')
$('[name="searchable_select2"].js-shadow + .js-input').focus().val('').trigger('input')
var $element = $('[name="searchable_select2"]').closest('.searchableSelect').find('.js-optionsList')
var entries = $element.find('li:not(.is-hidden)').length
equal(entries, 3, 'dropdown count')
$('[name="searchable_select2"].js-shadow + .js-input').focus().val('ccc display').trigger('input')
var entries = $element.find('li:not(.is-hidden)').length
equal(entries, 1, 'dropdown count')
$element.find('li:not(.is-hidden)').first().click()
params = App.ControllerForm.params(el)
test_params = {
searchable_select1: 'ccc',
searchable_select2: 'ccc',
searchable_select3: '',
}
deepEqual(params, test_params, 'form param check')
$('[name="searchable_select3"].js-shadow + .js-input').focus().val('').trigger('input')
var $element = $('[name="searchable_select3"]').closest('.searchableSelect').find('.js-optionsList')
var entries = $element.find('li:not(.is-hidden)').length
equal(entries, 3, 'dropdown count')
$('[name="searchable_select3"].js-shadow + .js-input').focus().val('ccc display').trigger('input')
var entries = $element.find('li:not(.is-hidden)').length
equal(entries, 1, 'dropdown count')
$('[name="searchable_select3"].js-shadow + .js-input').focus().val('unknown value').trigger('input')
var entries = $element.find('li:not(.is-hidden)').length
equal(entries, 3, 'dropdown count')
var entries = $element.find('li.is-active').length
equal(entries, 0, 'active count')
var e = $.Event('keydown')
e.which = 13 //enter
e.keyCode = 13
$('[name="searchable_select3"].js-shadow + .js-input').trigger(e)
params = App.ControllerForm.params(el)
test_params = {
searchable_select1: 'ccc',
searchable_select2: 'ccc',
searchable_select3: 'unknown value',
}
deepEqual(params, test_params, 'form param check')
});