mirror of https://github.com/sveltejs/svelte
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.
40 lines
1.2 KiB
40 lines
1.2 KiB
5 years ago
|
export default {
|
||
|
async test({ assert, component, target, window }) {
|
||
|
const [input1, input2] = target.querySelectorAll('input');
|
||
|
const select = target.querySelector('select');
|
||
|
const [option1, option2] = select.childNodes;
|
||
|
|
||
|
let selections = Array.from(select.selectedOptions);
|
||
|
assert.equal(selections.length, 2);
|
||
|
assert.ok(selections.includes(option1));
|
||
|
assert.ok(selections.includes(option2));
|
||
|
|
||
|
const event = new window.Event('change');
|
||
|
|
||
|
input1.checked = false;
|
||
|
await input1.dispatchEvent(event);
|
||
|
|
||
|
selections = Array.from(select.selectedOptions);
|
||
|
assert.equal(selections.length, 1);
|
||
|
assert.ok(!selections.includes(option1));
|
||
|
assert.ok(selections.includes(option2));
|
||
|
|
||
|
input2.checked = false;
|
||
|
await input2.dispatchEvent(event);
|
||
|
input1.checked = true;
|
||
|
await input1.dispatchEvent(event);
|
||
|
|
||
|
selections = Array.from(select.selectedOptions);
|
||
|
assert.equal(selections.length, 1);
|
||
|
assert.ok(selections.includes(option1));
|
||
|
assert.ok(!selections.includes(option2));
|
||
|
|
||
|
component.spread = { value: ['Hello', 'World'] };
|
||
|
|
||
|
selections = Array.from(select.selectedOptions);
|
||
|
assert.equal(selections.length, 2);
|
||
|
assert.ok(selections.includes(option1));
|
||
|
assert.ok(selections.includes(option2));
|
||
|
}
|
||
|
};
|