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-input-group-if-gh-8.../_config.js

41 lines
1.2 KiB

export default {
async test({ assert, target, component, window }) {
const button = target.querySelector('button');
const clickEvent = new window.Event('click');
const changeEvent = new window.Event('change');
const [input1, input2] = target.querySelectorAll('input[type="checkbox"]');
function validate_inputs(v1, v2) {
assert.equal(input1.checked, v1);
assert.equal(input2.checked, v2);
}
assert.deepEqual(component.test, []);
validate_inputs(false, false);
component.test = ['a', 'b'];
validate_inputs(true, true);
input1.checked = false;
await input1.dispatchEvent(changeEvent);
assert.deepEqual(component.test, ['b']);
input2.checked = false;
await input2.dispatchEvent(changeEvent);
assert.deepEqual(component.test, []);
input1.checked = true;
input2.checked = true;
await input1.dispatchEvent(changeEvent);
await input2.dispatchEvent(changeEvent);
assert.deepEqual(component.test, ['b', 'a']);
await button.dispatchEvent(clickEvent);
assert.deepEqual(component.test, ['b', 'a']); // should it be ['a'] only? valid arguments for both outcomes
input1.checked = false;
await input1.dispatchEvent(changeEvent);
assert.deepEqual(component.test, []);
}
};