You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
svelte/test/runtime/samples/binding-select-in-yield/_config.js

73 lines
1.3 KiB

export default {
html: '',
props: {
letter: 'b'
},
async test({ assert, component, target, window }) {
await component.modal.toggle();
assert.htmlEqual(
target.innerHTML,
`
<span>b</span>
<select>
<option value='a'>a</option>
<option value='b'>b</option>
<option value='c'>c</option>
</select>
`
);
let select = target.querySelector('select');
const change = new window.MouseEvent('change');
select.options[2].selected = true;
await select.dispatchEvent(change);
assert.equal(component.letter, 'c');
assert.deepEqual(
Array.from(select.options).map((o) => o.selected),
[false, false, true]
);
assert.htmlEqual(
target.innerHTML,
`
<span>c</span>
<select>
<option value='a'>a</option>
<option value='b'>b</option>
<option value='c'>c</option>
</select>
`
);
await component.modal.toggle();
await component.modal.toggle();
select = target.querySelector('select');
assert.deepEqual(
Array.from(select.options).map((o) => o.selected),
[false, false, true]
);
assert.htmlEqual(
target.innerHTML,
`
<span>c</span>
<select>
<option value='a'>a</option>
<option value='b'>b</option>
<option value='c'>c</option>
</select>
`
);
}
};