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

64 lines
1.2 KiB

export default {
html: ``,
data: {
letter: 'b'
},
test ( assert, component, target, window ) {
component.refs.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>
`);
const select = target.querySelector('select');
const change = new window.MouseEvent('change');
select.options[2].selected = true;
select.dispatchEvent(change);
assert.equal(component.get('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>
`);
component.refs.modal.toggle();
component.refs.modal.toggle();
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>
`);
}
};