describe('duplicates', function() { it_n('should add and remove duplicates',async function(){ var test = setup_test('AB_Multi',{ duplicates: true, }); // add assert.equal(0,test.instance.items.length,0,'should start empty'); test.instance.addItem('a'); assert.equal(test.instance.items.length,1,'should add one'); assert.equal(test.instance.input.querySelectorAll('option[value="a"]').length, 1, 'should have 1 option w/ value=a in original select'); test.instance.addItem('a'); assert.equal(test.instance.items.length,2,'should add second'); assert.equal(test.instance.input.querySelectorAll('option[value="a"]').length, 2,'should have 3 options w/ value=a in original select'); test.instance.addItem('a'); assert.equal(test.instance.items.length,3,'should have all three'); assert.equal(test.instance.input.querySelectorAll('option[value="a"]').length, 3, 'should have 3 option w/ value=a in original select'); // remove items in order const items = test.instance.controlChildren(); await asyncClick(test.instance.control_input); while( items.length ){ items.pop(); await asyncType('\b',test.instance.control_input); const items_after = test.instance.controlChildren(); assert.deepEqual( items, items_after); } }); it_n('should initialize with duplicates (input)',async ()=>{ var test = setup_test('',{duplicates:true}); assert.equal(test.instance.items.length,2); }); it_n('should initialize with duplicates (select)',async ()=>{ var test = setup_test('',{duplicates:true}); assert.equal(test.instance.items.length,2); }); });