export default { html: `
selected: null
selected: null
`, async test({ assert, component, target }) { const select = target.querySelector('select'); const options = [...target.querySelectorAll('option')]; assert.equal(component.selected, null); // no option should be selected since none of the options matches the bound value assert.equal(select.value, ''); assert.equal(select.selectedIndex, -1); assert.ok(!options[0].selected); component.selected = 'a'; // first option should now be selected assert.equal(select.value, 'a'); assert.ok(options[0].selected); assert.htmlEqual(target.innerHTML, `selected: a
selected: a
`); component.selected = 'd'; // doesn't match an option // now no option should be selected again assert.equal(select.value, ''); assert.equal(select.selectedIndex, -1); assert.ok(!options[0].selected); assert.htmlEqual(target.innerHTML, `selected: d
selected: d
`); component.selected = 'b'; // second option should now be selected assert.equal(select.value, 'b'); assert.ok(options[1].selected); assert.htmlEqual(target.innerHTML, `selected: b
selected: b
`); component.selected = undefined; // also doesn't match an option // now no option should be selected again assert.equal(select.value, ''); assert.equal(select.selectedIndex, -1); assert.ok(!options[0].selected); assert.htmlEqual(target.innerHTML, `selected: undefined
selected: undefined
`); } };