chore: cleanup more tests (#11738)

remove awaits in favor of flushSync
pull/11741/head
Dominic Gannaway 1 year ago committed by GitHub
parent d4718e0755
commit 44115840bd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { assert_ok, test } from '../../test';
export default test({
@ -12,11 +13,12 @@ export default test({
};
},
async test(assert, target, _, component, window) {
test(assert, target, _, component, window) {
const input = target.querySelector('input');
assert_ok(input);
input.value = 'everybody';
await input.dispatchEvent(new window.Event('input'));
input.dispatchEvent(new window.Event('input'));
flushSync();
assert.equal(component.name, 'everybody');
assert.htmlEqual(

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { assert_ok, test } from '../../test';
export default test({
@ -16,7 +17,8 @@ export default test({
async test(assert, target, _, component, window) {
const button = target.querySelector('button');
assert_ok(button);
await button.dispatchEvent(new window.MouseEvent('click', { bubbles: true }));
button.dispatchEvent(new window.MouseEvent('click', { bubbles: true }));
flushSync();
assert.ok(component.clicked);
assert.htmlEqual(

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../assert';
const tick = () => Promise.resolve();
@ -18,7 +19,8 @@ export default test({
assert.equal(p.innerHTML, 'Context works');
assert.equal(getComputedStyle(button).color, 'rgb(255, 0, 0)');
await button.dispatchEvent(new MouseEvent('click', { bubbles: true }));
button.dispatchEvent(new MouseEvent('click', { bubbles: true }));
flushSync();
assert.equal(el.counter.count, 1);
assert.equal(button.innerHTML, 'count: 1');

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../assert';
const tick = () => Promise.resolve();
@ -6,15 +7,18 @@ export default test({
const element = document.createElement('custom-element');
target.appendChild(element);
await tick();
flushSync();
/** @type {any} */
const el = target.querySelector('custom-element');
el.shadowRoot.querySelector('button').click();
await tick();
flushSync();
assert.equal(el.getAttribute('aria-expanded'), '');
el.shadowRoot.querySelector('button').click();
await tick();
flushSync();
assert.equal(el.getAttribute('aria-expanded'), null);
}

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../assert';
const tick = () => Promise.resolve();
@ -23,6 +24,7 @@ export default test({
assert.equal(getComputedStyle(inner_p).color, 'rgb(255, 255, 255)');
button.click();
flushSync();
await tick();
await tick();

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -5,7 +6,7 @@ export default test({
<button>action</button>
`,
async test({ assert, target, window }) {
test({ assert, target, window }) {
const button = target.querySelector('button');
ok(button);
@ -13,7 +14,8 @@ export default test({
const leave = new window.MouseEvent('mouseleave');
const ctrlPress = new window.KeyboardEvent('keydown', { ctrlKey: true });
await button.dispatchEvent(enter);
button.dispatchEvent(enter);
flushSync();
assert.htmlEqual(
target.innerHTML,
`
@ -22,7 +24,8 @@ export default test({
`
);
await window.dispatchEvent(ctrlPress);
window.dispatchEvent(ctrlPress);
flushSync();
assert.htmlEqual(
target.innerHTML,
`
@ -31,7 +34,8 @@ export default test({
`
);
await button.dispatchEvent(leave);
button.dispatchEvent(leave);
flushSync();
assert.htmlEqual(
target.innerHTML,
`

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
/** @type {string[]} */
@ -9,14 +10,15 @@ export default test({
return { value };
},
async test({ assert, target, window }) {
test({ assert, target, window }) {
const inputs = target.querySelectorAll('input');
const event = new window.Event('input');
const event = new window.Event('input', { bubbles: true });
for (const input of inputs) {
input.value = 'h';
await input.dispatchEvent(event);
input.dispatchEvent(event);
flushSync();
}
// Svelte 5 breaking change, use:action now fires

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -15,13 +16,14 @@ export default test({
<p></p>
`,
async test({ assert, target, window }) {
test({ assert, target, window }) {
const input = target.querySelector('input');
ok(input);
const event = new window.Event('input');
input.value = 'h';
await input.dispatchEvent(event);
input.dispatchEvent(event);
flushSync();
assert.equal(input.value, 'H');
assert.htmlEqual(
@ -33,7 +35,8 @@ export default test({
);
input.value = 'he';
await input.dispatchEvent(event);
input.dispatchEvent(event);
flushSync();
assert.equal(input.value, 'HE');
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -17,8 +18,8 @@ export default test({
const change = new window.Event('change');
options[1].selected = true;
await select.dispatchEvent(change);
await Promise.resolve();
select.dispatchEvent(change);
flushSync();
assert.equal(span.textContent, 'b');
}

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -13,7 +14,7 @@ export default test({
</select>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const select = target.querySelector('select');
ok(select);
const options = target.querySelectorAll('option');
@ -21,7 +22,8 @@ export default test({
const change = new window.Event('change');
options[1].selected = true;
await select.dispatchEvent(change);
select.dispatchEvent(change);
flushSync();
assert.equal(component.selected.letter, 'B');
assert.htmlEqual(

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -25,17 +26,17 @@ export default test({
</div>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const inputs = [...target.querySelectorAll('input')];
const event = new window.Event('change');
inputs[1].checked = true;
await inputs[1].dispatchEvent(event);
inputs[1].dispatchEvent(event);
flushSync();
await component.clear();
await Promise.resolve();
component.clear();
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -46,9 +47,10 @@ export default test({
);
inputs[2].checked = true;
await inputs[2].dispatchEvent(event);
await component.clear();
inputs[2].dispatchEvent(event);
flushSync();
component.clear();
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -37,7 +38,7 @@ export default test({
<p>1 completed</p>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const inputs = [...target.querySelectorAll('input')];
assert.ok(inputs[0].checked);
@ -47,9 +48,8 @@ export default test({
const event = new window.Event('change');
inputs[1].checked = true;
await inputs[1].dispatchEvent(event);
// Wait for the DOM to update
await Promise.resolve();
inputs[1].dispatchEvent(event);
flushSync();
assert.equal(component.numCompleted, 2);
assert.htmlEqual(

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
const values = [{ name: 'Alpha' }, { name: 'Beta' }, { name: 'Gamma' }];
@ -37,7 +38,7 @@ export default test({
<p>Beta</p>`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const inputs = target.querySelectorAll('input');
assert.equal(inputs[0].checked, false);
assert.equal(inputs[1].checked, true);
@ -46,7 +47,8 @@ export default test({
const event = new window.Event('change');
inputs[0].checked = true;
await inputs[0].dispatchEvent(event);
inputs[0].dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
const values = [{ name: 'Alpha' }, { name: 'Beta' }, { name: 'Gamma' }];
@ -37,7 +38,7 @@ export default test({
<p>Beta</p>`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
let inputs = target.querySelectorAll('input');
assert.equal(inputs[0].checked, false);
assert.equal(inputs[1].checked, true);
@ -46,7 +47,8 @@ export default test({
const event = new window.Event('change');
inputs[0].checked = true;
await inputs[0].dispatchEvent(event);
inputs[0].dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -15,7 +16,7 @@ export default test({
<p>true</p>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const input = target.querySelector('input');
ok(input);
@ -24,7 +25,8 @@ export default test({
const event = new window.Event('change');
input.checked = false;
await input.dispatchEvent(event);
input.dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -19,7 +20,7 @@ export default test({
<input type='checkbox' value='d'>d<br>
`,
async test({ assert, target, window }) {
test({ assert, target, window }) {
const inputs = target.querySelectorAll('input');
const p = target.querySelector('p');
ok(p);
@ -37,7 +38,8 @@ export default test({
const event = new window.Event('change');
inputs[0].checked = true;
await inputs[0].dispatchEvent(event);
inputs[0].dispatchEvent(event);
flushSync();
assert.htmlEqual(p.innerHTML, 'Checked: a');
@ -52,7 +54,8 @@ export default test({
assert.equal(inputs[7].checked, false);
inputs[3].checked = true;
await inputs[3].dispatchEvent(event);
inputs[3].dispatchEvent(event);
flushSync();
assert.htmlEqual(p.innerHTML, 'Checked: a,d');
@ -67,7 +70,8 @@ export default test({
assert.equal(inputs[7].checked, true);
inputs[4].checked = false;
await inputs[4].dispatchEvent(event);
inputs[4].dispatchEvent(event);
flushSync();
assert.htmlEqual(p.innerHTML, 'Checked: d');

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
/** @type {Array<{ name: string }>} */
@ -112,7 +113,7 @@ export default test({
</div>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const inputs = target.querySelectorAll('input');
assert.equal(inputs[0].checked, false);
assert.equal(inputs[1].checked, true);
@ -127,8 +128,8 @@ export default test({
const event = new window.Event('change');
inputs[0].checked = true;
await inputs[0].dispatchEvent(event);
await Promise.resolve();
inputs[0].dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -181,8 +182,8 @@ export default test({
`
);
inputs[3].checked = true;
await inputs[3].dispatchEvent(event);
await Promise.resolve();
inputs[3].dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -236,8 +237,8 @@ export default test({
);
inputs[8].checked = false;
await inputs[8].dispatchEvent(event);
await Promise.resolve();
inputs[8].dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,16 +1,19 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
// https://github.com/sveltejs/svelte/issues/7633
export default test({
async test({ assert, target, component }) {
test({ assert, target, component }) {
let inputs = target.querySelectorAll('input');
assert.equal(inputs[0].checked, true);
assert.equal(inputs[1].checked, false);
assert.equal(inputs[2].checked, false);
await component.moveDown(0);
await component.moveDown(1);
component.moveDown(0);
flushSync();
component.moveDown(1);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,8 +1,9 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
// https://github.com/sveltejs/svelte/issues/6112
export default test({
async test({ assert, target, component, window }) {
test({ assert, target, component, window }) {
let inputs = target.querySelectorAll('input');
/** @param {Set<number>} set */
@ -45,8 +46,8 @@ export default test({
// dom to value
inputs[3].checked = true;
await inputs[3].dispatchEvent(event);
await Promise.resolve();
inputs[3].dispatchEvent(event);
flushSync();
check(new Set([0, 3, 5, 6]));
assert.equal(component.pipelineOperations[1].operation.args[1].value, 'd');
@ -84,8 +85,8 @@ export default test({
check(new Set([0, 3, 5, 6]));
inputs[2].checked = true;
await inputs[2].dispatchEvent(event);
await Promise.resolve();
inputs[2].dispatchEvent(event);
flushSync();
check(new Set([0, 2, 5, 6]));
}

@ -1,8 +1,9 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
// https://github.com/sveltejs/svelte/issues/6112
export default test({
async test({ assert, target, component, window }) {
test({ assert, target, component, window }) {
let inputs = target.querySelectorAll('input');
/** @param {Set<number>} set */
@ -45,7 +46,8 @@ export default test({
// dom to value
inputs[3].checked = true;
await inputs[3].dispatchEvent(event);
inputs[3].dispatchEvent(event);
flushSync();
check(new Set([0, 2, 3]));
assert.deepEqual(component.pipelineOperations[1].operation.args[1].value, ['c', 'd']);
@ -83,7 +85,8 @@ export default test({
check(new Set([0, 2, 3]));
inputs[5].checked = true;
await inputs[5].dispatchEvent(event);
inputs[5].dispatchEvent(event);
flushSync();
check(new Set([0, 2, 3, 5]));
assert.deepEqual(component.pipelineOperations[1].operation.args[0].value, ['b']);

@ -1,7 +1,8 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
async test({ assert, target, window }) {
test({ assert, target, window }) {
const [input1, input2] = /** @type {NodeListOf<HTMLInputElement>} */ (
target.querySelectorAll('input[type=text]')
);
@ -12,26 +13,28 @@ export default test({
const event = new window.Event('input');
input1.value = 'world';
await input1.dispatchEvent(event);
await Promise.resolve();
input1.dispatchEvent(event);
flushSync();
assert.equal(radio.checked, true);
input2.value = 'foo';
await input2.dispatchEvent(event);
await Promise.resolve();
input2.dispatchEvent(event);
flushSync();
assert.equal(radio.checked, false);
input1.value = 'foo';
await input1.dispatchEvent(event);
input1.dispatchEvent(event);
flushSync();
assert.equal(radio.checked, true);
input1.value = 'bar';
await input1.dispatchEvent(event);
input1.dispatchEvent(event);
flushSync();
assert.equal(radio.checked, false);
input2.value = 'bar';
await input2.dispatchEvent(event);
await Promise.resolve();
input2.dispatchEvent(event);
flushSync();
assert.equal(radio.checked, true);
}
});

@ -1,39 +1,40 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
async test({ assert, target, window }) {
test({ assert, target, window }) {
const [input1, input2, input3, input4] = target.querySelectorAll('input');
const [p] = target.querySelectorAll('p');
const event = new window.Event('change');
input1.checked = true;
await input1.dispatchEvent(event);
await Promise.resolve();
input1.dispatchEvent(event);
flushSync();
assert.htmlEqual(p.innerHTML, '["1a"]');
input2.checked = true;
await input1.dispatchEvent(event);
await Promise.resolve();
input1.dispatchEvent(event);
flushSync();
assert.htmlEqual(p.innerHTML, '["1a","1b"]');
input3.checked = true;
await input1.dispatchEvent(event);
await Promise.resolve();
input1.dispatchEvent(event);
flushSync();
assert.htmlEqual(p.innerHTML, '["1a","1b","2a"]');
input4.checked = true;
await input1.dispatchEvent(event);
await Promise.resolve();
input1.dispatchEvent(event);
flushSync();
assert.htmlEqual(p.innerHTML, '["1a","1b","2a","2b"]');
input1.checked = false;
await input1.dispatchEvent(event);
await Promise.resolve();
input1.dispatchEvent(event);
flushSync();
assert.htmlEqual(p.innerHTML, '["1b","2a","2b"]');
input3.checked = false;
await input1.dispatchEvent(event);
await Promise.resolve();
input1.dispatchEvent(event);
flushSync();
assert.htmlEqual(p.innerHTML, '["1b","2b"]');
}
});

@ -1,7 +1,8 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
async test({ assert, target }) {
test({ assert, target }) {
const checkboxes = /** @type {NodeListOf<HTMLInputElement>} */ (
target.querySelectorAll('input[type="checkbox"]')
);
@ -10,12 +11,14 @@ export default test({
assert.isTrue(checkboxes[1].checked);
assert.isFalse(checkboxes[2].checked);
await checkboxes[1].click();
checkboxes[1].click();
flushSync();
const noChecked = target.querySelector('#output')?.innerHTML;
assert.equal(noChecked, '');
await checkboxes[1].click();
checkboxes[1].click();
flushSync();
const oneChecked = target.querySelector('#output')?.innerHTML;
assert.equal(oneChecked, 'Mint choc chip');

@ -1,7 +1,8 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
async test({ assert, target }) {
test({ assert, target }) {
const checkboxes = /** @type {NodeListOf<HTMLInputElement>} */ (
target.querySelectorAll('input[type="checkbox"]')
);
@ -10,12 +11,14 @@ export default test({
assert.isTrue(checkboxes[1].checked);
assert.isFalse(checkboxes[2].checked);
await checkboxes[1].click();
checkboxes[1].click();
flushSync();
const noChecked = target.querySelector('#output')?.innerHTML;
assert.equal(noChecked, '');
await checkboxes[1].click();
checkboxes[1].click();
flushSync();
const oneChecked = target.querySelector('#output')?.innerHTML;
assert.equal(oneChecked, 'Mint choc chip');

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -27,7 +28,7 @@ export default test({
<p>1, 2, 3</p>`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const inputs = target.querySelectorAll('input');
assert.equal(inputs[0].checked, true);
assert.equal(inputs[1].checked, true);
@ -36,7 +37,8 @@ export default test({
const event = new window.Event('change');
inputs[0].checked = false;
await inputs[0].dispatchEvent(event);
inputs[0].dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
/** @type {Array<{ name: string }>} */
@ -110,7 +111,7 @@ export default test({
<p>Gamma</p>
</div>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const inputs = target.querySelectorAll('input');
assert.equal(inputs[0].checked, false);
@ -126,7 +127,8 @@ export default test({
const event = new window.Event('change');
inputs[0].checked = true;
await inputs[0].dispatchEvent(event);
inputs[0].dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -179,7 +181,8 @@ export default test({
`
);
inputs[3].checked = true;
await inputs[3].dispatchEvent(event);
inputs[3].dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -233,7 +236,8 @@ export default test({
);
inputs[8].checked = false;
await inputs[8].dispatchEvent(event);
inputs[8].dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -37,7 +38,7 @@ export default test({
<label><input type="checkbox" value="3" checked> 3</label>
<p>3</p>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const inputs = target.querySelectorAll('input');
assert.equal(inputs[0].checked, true);
assert.equal(inputs[1].checked, false);
@ -58,8 +59,8 @@ export default test({
const event = new window.Event('change');
inputs[2].checked = true;
await inputs[2].dispatchEvent(event);
await Promise.resolve();
inputs[2].dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -84,8 +85,8 @@ export default test({
);
inputs[9].checked = true;
await inputs[9].dispatchEvent(event);
await Promise.resolve();
inputs[9].dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -110,24 +111,24 @@ export default test({
);
inputs[4].checked = false;
await inputs[4].dispatchEvent(event);
await Promise.resolve();
inputs[4].dispatchEvent(event);
flushSync();
inputs[5].checked = true;
await inputs[5].dispatchEvent(event);
await Promise.resolve();
inputs[5].dispatchEvent(event);
flushSync();
inputs[6].checked = true;
await inputs[6].dispatchEvent(event);
await Promise.resolve();
inputs[6].dispatchEvent(event);
flushSync();
inputs[7].checked = true;
await inputs[7].dispatchEvent(event);
await Promise.resolve();
inputs[7].dispatchEvent(event);
flushSync();
inputs[11].checked = false;
await inputs[11].dispatchEvent(event);
await Promise.resolve();
inputs[11].dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -37,7 +38,7 @@ export default test({
<label><input type="checkbox" value="3"> 3</label>
<p>1</p>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const inputs = target.querySelectorAll('input');
assert.equal(inputs[0].checked, true);
assert.equal(inputs[1].checked, false);
@ -58,8 +59,8 @@ export default test({
const event = new window.Event('change');
inputs[2].checked = true;
await inputs[2].dispatchEvent(event);
await Promise.resolve();
inputs[2].dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -84,8 +85,8 @@ export default test({
);
inputs[8].checked = true;
await inputs[8].dispatchEvent(event);
await Promise.resolve();
inputs[8].dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -150,8 +151,8 @@ export default test({
assert.equal(inputs[11].checked, false);
inputs[5].checked = false;
await inputs[5].dispatchEvent(event);
await Promise.resolve();
inputs[5].dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -15,7 +16,7 @@ export default test({
<label><input type="checkbox" value="z"> z</label>
<p></p>
`,
async test({ assert, target, window }) {
test({ assert, target, window }) {
const inputs = target.querySelectorAll('input');
assert.equal(inputs[0].checked, false);
assert.equal(inputs[1].checked, false);
@ -32,7 +33,8 @@ export default test({
const event = new window.Event('change');
inputs[2].checked = true;
await inputs[2].dispatchEvent(event);
inputs[2].dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -53,7 +55,8 @@ export default test({
);
inputs[4].checked = true;
await inputs[4].dispatchEvent(event);
inputs[4].dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -74,7 +77,8 @@ export default test({
);
inputs[5].checked = true;
await inputs[5].dispatchEvent(event);
inputs[5].dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,8 +1,9 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
// https://github.com/sveltejs/svelte/issues/7884
export default test({
async test({ assert, target, component, window }) {
test({ assert, target, component, window }) {
let inputs = target.querySelectorAll('input');
assert.htmlEqual(
@ -27,11 +28,14 @@ export default test({
const event = new window.Event('change');
inputs[0].checked = true;
await inputs[0].dispatchEvent(event);
inputs[0].dispatchEvent(event);
flushSync();
inputs[2].checked = true;
await inputs[2].dispatchEvent(event);
inputs[2].dispatchEvent(event);
flushSync();
inputs[3].checked = true;
await inputs[3].dispatchEvent(event);
inputs[3].dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -52,8 +56,8 @@ export default test({
`
);
await component.update();
await Promise.resolve();
component.update();
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -70,7 +74,8 @@ export default test({
inputs = target.querySelectorAll('input');
inputs[0].checked = true;
await inputs[0].dispatchEvent(event);
inputs[0].dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,18 +1,19 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
// https://github.com/sveltejs/svelte/issues/7633
export default test({
async test({ assert, target, component }) {
test({ assert, target, component }) {
let inputs = target.querySelectorAll('input');
assert.equal(inputs[0].checked, true);
assert.equal(inputs[1].checked, false);
assert.equal(inputs[2].checked, false);
await component.moveDown(0);
await component.moveDown(1);
await Promise.resolve();
component.moveDown(0);
flushSync();
component.moveDown(1);
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -34,13 +35,15 @@ export default test({
assert.equal(inputs[1].checked, false);
assert.equal(inputs[2].checked, true);
await (component.current = 'b');
component.current = 'b';
flushSync();
assert.equal(inputs[0].checked, true);
assert.equal(inputs[1].checked, false);
assert.equal(inputs[2].checked, false);
await component.moveDown(1);
component.moveDown(1);
flushSync();
// after shifting order, should still keep the correct radio checked
inputs = target.querySelectorAll('input');

@ -1,7 +1,8 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
async test({ assert, target, component, window }) {
test({ assert, target, component, window }) {
const button = target.querySelector('button');
ok(button);
const clickEvent = new window.Event('click', { bubbles: true });
@ -27,24 +28,29 @@ export default test({
validate_inputs(true, true);
input1.checked = false;
await input1.dispatchEvent(changeEvent);
input1.dispatchEvent(changeEvent);
flushSync();
assert.deepEqual(component.test, ['b']);
input2.checked = false;
await input2.dispatchEvent(changeEvent);
input2.dispatchEvent(changeEvent);
flushSync();
assert.deepEqual(component.test, []);
input1.checked = true;
input2.checked = true;
await input1.dispatchEvent(changeEvent);
await input2.dispatchEvent(changeEvent);
input1.dispatchEvent(changeEvent);
input2.dispatchEvent(changeEvent);
flushSync();
assert.deepEqual(component.test, ['a', 'b']);
await button.dispatchEvent(clickEvent);
button.dispatchEvent(clickEvent);
flushSync();
assert.deepEqual(component.test, ['a', 'b']); // should it be ['a'] only? valid arguments for both outcomes
input1.checked = false;
await input1.dispatchEvent(changeEvent);
input1.dispatchEvent(changeEvent);
flushSync();
assert.deepEqual(component.test, []);
}
});

@ -1,7 +1,8 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
async test({ assert, target, component, window }) {
test({ assert, target, component, window }) {
const button = target.querySelector('button');
ok(button);
const clickEvent = new window.Event('click', { bubbles: true });
@ -27,18 +28,22 @@ export default test({
validate_inputs(false, true);
input1.checked = true;
await input1.dispatchEvent(changeEvent);
input1.dispatchEvent(changeEvent);
flushSync();
assert.deepEqual(component.test, 'a');
input2.checked = true;
await input2.dispatchEvent(changeEvent);
input2.dispatchEvent(changeEvent);
flushSync();
assert.deepEqual(component.test, 'b');
await button.dispatchEvent(clickEvent);
button.dispatchEvent(clickEvent);
flushSync();
assert.deepEqual(component.test, 'b'); // should it be undefined? valid arguments for both outcomes
input1.checked = true;
await input1.dispatchEvent(changeEvent);
input1.dispatchEvent(changeEvent);
flushSync();
assert.deepEqual(component.test, 'a');
}
});

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -15,7 +16,7 @@ export default test({
<p>number 42</p>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const input = target.querySelector('input');
ok(input);
assert.equal(input.value, '42');
@ -23,7 +24,8 @@ export default test({
const event = new window.Event('input');
input.value = '43';
await input.dispatchEvent(event);
input.dispatchEvent(event);
flushSync();
assert.equal(component.count, 43);
assert.htmlEqual(
@ -46,7 +48,8 @@ export default test({
// empty string should be treated as null
input.value = '';
await input.dispatchEvent(event);
input.dispatchEvent(event);
flushSync();
assert.equal(component.count, null);
assert.htmlEqual(

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
const values = [{ name: 'Alpha' }, { name: 'Beta' }, { name: 'Gamma' }];
@ -37,7 +38,7 @@ export default test({
<p>Beta</p>`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const inputs = target.querySelectorAll('input');
assert.equal(inputs[0].checked, false);
assert.equal(inputs[1].checked, true);
@ -46,7 +47,8 @@ export default test({
const event = new window.Event('change');
inputs[0].checked = true;
await inputs[0].dispatchEvent(event);
inputs[0].dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -13,7 +14,7 @@ export default test({
<p>10 of 10</p>
`,
async test({ assert, target, window }) {
test({ assert, target, window }) {
const input = target.querySelector('input');
ok(input);
assert.equal(input.value, '10');
@ -25,8 +26,8 @@ export default test({
const button = target.querySelector('button');
ok(button);
await button.dispatchEvent(new window.Event('click', { bubbles: true }));
await Promise.resolve();
button.dispatchEvent(new window.Event('click', { bubbles: true }));
flushSync();
assert.equal(input.value, '20');
assert.htmlEqual(

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -15,7 +16,7 @@ export default test({
<p>number 42</p>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const input = target.querySelector('input');
ok(input);
assert.equal(input.value, '42');
@ -23,7 +24,8 @@ export default test({
const event = new window.Event('input');
input.value = '43';
await input.dispatchEvent(event);
input.dispatchEvent(event);
flushSync();
assert.equal(component.count, 43);
assert.htmlEqual(

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -15,7 +16,7 @@ export default test({
<div><input value=x><p>x</p></div>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const inputs = [...target.querySelectorAll('input')];
const event = new window.Event('input');
@ -23,9 +24,10 @@ export default test({
inputs[0].value = 'b';
inputs[1].value = 'y';
await inputs[0].dispatchEvent(event);
await inputs[1].dispatchEvent(event);
await Promise.resolve();
inputs[0].dispatchEvent(event);
flushSync();
inputs[1].dispatchEvent(event);
flushSync();
assert.equal(component.foo, 'b');
assert.equal(component.items[0], 'y');

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -45,7 +46,7 @@ export default test({
<p>remaining:one / done:two / remaining:three</p>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
/**
* @param {number} i
* @param {string} text
@ -88,8 +89,8 @@ export default test({
`
);
await set_text(1, 'four');
await Promise.resolve();
set_text(1, 'four');
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -113,8 +114,8 @@ export default test({
{ done: false, text: 'four' }
]);
await set_done(0, true);
await Promise.resolve();
set_done(0, true);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -29,7 +30,7 @@ export default test({
</div>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const inputs = [...target.querySelectorAll('input')];
const items = component.items;
const event = new window.Event('input');
@ -37,8 +38,8 @@ export default test({
assert.equal(inputs[0].value, 'one');
inputs[1].value = 'four';
await inputs[1].dispatchEvent(event);
await Promise.resolve();
inputs[1].dispatchEvent(event);
flushSync();
assert.equal(items[1], 'four');
assert.htmlEqual(

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -15,7 +16,7 @@ export default test({
<input value=world>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const input = target.querySelector('input');
ok(input);
assert.equal(input.value, 'world');
@ -23,7 +24,8 @@ export default test({
const event = new window.Event('input');
input.value = 'everybody';
await input.dispatchEvent(event);
input.dispatchEvent(event);
flushSync();
assert.equal(input.value, 'everybody');
assert.htmlEqual(

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -18,7 +19,7 @@ export default test({
<pre>{"foo":"a","bar":"b","baz":"c"}</pre>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const input = target.querySelector('input');
ok(input);
const event = new window.Event('input');
@ -27,7 +28,8 @@ export default test({
// edit bar
input.value = 'e';
await input.dispatchEvent(event);
input.dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -42,7 +44,8 @@ export default test({
assert.equal(input.value, 'c');
input.value = 'f';
await input.dispatchEvent(event);
input.dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -57,7 +60,8 @@ export default test({
assert.equal(input.value, 'a');
input.value = 'd';
await input.dispatchEvent(event);
input.dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -15,7 +16,7 @@ export default test({
<p>hello alice</p>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const input = target.querySelector('input');
ok(input);
@ -24,7 +25,8 @@ export default test({
const event = new window.Event('input');
input.value = 'bob';
await input.dispatchEvent(event);
input.dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -18,7 +19,7 @@ export default test({
<pre>{"foo":"a","bar":"b","baz":"c"}</pre>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const input = target.querySelector('input');
ok(input);
const event = new window.Event('input');
@ -27,8 +28,8 @@ export default test({
// edit bar
input.value = 'e';
await input.dispatchEvent(event);
await Promise.resolve();
input.dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -43,8 +44,8 @@ export default test({
assert.equal(input.value, 'c');
input.value = 'f';
await input.dispatchEvent(event);
await Promise.resolve();
input.dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -59,8 +60,8 @@ export default test({
assert.equal(input.value, 'a');
input.value = 'd';
await input.dispatchEvent(event);
await Promise.resolve();
input.dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -19,16 +20,16 @@ export default test({
<div><input value=three><p>three</p></div>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const inputs = [...target.querySelectorAll('input')];
assert.equal(inputs[0].value, 'one');
const event = new window.Event('input');
const event = new window.Event('input', { bubbles: true });
inputs[1].value = 'four';
await inputs[1].dispatchEvent(event);
await Promise.resolve();
inputs[1].dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -15,7 +16,7 @@ export default test({
<p>hello alice</p>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const input = target.querySelector('input');
ok(input);
@ -24,7 +25,8 @@ export default test({
const event = new window.Event('input');
input.value = 'bob';
await input.dispatchEvent(event);
input.dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -15,7 +16,7 @@ export default test({
<p>hello world</p>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const input = target.querySelector('input');
ok(input);
assert.equal(input.value, 'world');
@ -23,7 +24,8 @@ export default test({
const event = new window.Event('input');
input.value = 'everybody';
await input.dispatchEvent(event);
input.dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -15,7 +16,7 @@ export default test({
<p>foo: 2</p>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const select = target.querySelector('select');
ok(select);
const options = [...target.querySelectorAll('option')];
@ -26,7 +27,8 @@ export default test({
const change = new window.Event('change');
options[2].selected = true;
await select.dispatchEvent(change);
select.dispatchEvent(change);
flushSync();
assert.equal(component.foo, 3);
assert.htmlEqual(

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -15,7 +16,7 @@ export default test({
<p>selected: two, three</p>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const select = target.querySelector('select');
ok(select);
const options = [...target.querySelectorAll('option')];
@ -23,7 +24,8 @@ export default test({
const change = new window.Event('change');
options[1].selected = false;
await select.dispatchEvent(change);
select.dispatchEvent(change);
flushSync();
assert.deepEqual(component.selected, ['three']);
assert.htmlEqual(
@ -40,7 +42,8 @@ export default test({
);
options[0].selected = true;
await select.dispatchEvent(change);
select.dispatchEvent(change);
flushSync();
assert.deepEqual(component.selected, ['one', 'three']);
assert.htmlEqual(

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -23,7 +24,7 @@ export default test({
</select>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const select = target.querySelector('select');
ok(select);
@ -35,7 +36,8 @@ export default test({
const change = new window.Event('change');
options[1].selected = true;
await select.dispatchEvent(change);
select.dispatchEvent(change);
flushSync();
assert.equal(component.name, 'World');
assert.htmlEqual(

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -17,7 +18,7 @@ export default test({
return { selected: 'one' };
},
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const select = target.querySelector('select');
ok(select);
@ -29,7 +30,8 @@ export default test({
const change = new window.Event('change');
options[1].selected = true;
await select.dispatchEvent(change);
select.dispatchEvent(change);
flushSync();
assert.equal(component.selected, 'two');
assert.htmlEqual(

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -11,7 +12,7 @@ export default test({
<p>hello world</p>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const input = target.querySelector('input');
ok(input);
@ -30,7 +31,8 @@ export default test({
});
input.value = 'everybody';
await input.dispatchEvent(event);
input.dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -40,7 +42,8 @@ export default test({
`
);
await component.user.set({ name: 'goodbye' });
component.user.set({ name: 'goodbye' });
flushSync();
assert.equal(input.value, 'goodbye');
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -9,12 +10,13 @@ export default test({
0
`,
async test({ assert, target, window }) {
test({ assert, target, window }) {
const input = target.querySelector('input');
ok(input);
input.checked = true;
await input.dispatchEvent(new window.Event('change', { bubbles: true }));
input.dispatchEvent(new window.Event('change', { bubbles: true }));
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -15,7 +16,7 @@ export default test({
<div contenteditable="true">world</div>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const input = target.querySelector('input');
ok(input);
assert.equal(input.value, 'world');
@ -31,7 +32,8 @@ export default test({
});
input.value = 'everybody';
await input.dispatchEvent(event);
input.dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -43,7 +45,8 @@ export default test({
`
);
await component.name.set('goodbye');
component.name.set('goodbye');
flushSync();
assert.equal(input.value, 'goodbye');
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -15,7 +16,7 @@ export default test({
<p>some text</p>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const textarea = target.querySelector('textarea');
ok(textarea);
assert.equal(textarea.value, 'some text');
@ -23,7 +24,8 @@ export default test({
const event = new window.Event('input');
textarea.value = 'hello';
await textarea.dispatchEvent(event);
textarea.dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -11,13 +12,14 @@ export default test({
<p>value: initial</p>
`,
async test({ assert, target, window }) {
test({ assert, target, window }) {
const input = target.querySelector('input');
ok(input);
const event = new window.Event('input');
input.value = 'changed';
await input.dispatchEvent(event);
input.dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,13 +1,15 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
async test({ assert, target, window }) {
test({ assert, target, window }) {
const input = target.querySelector('input');
ok(input);
const event = new window.Event('input');
input.value = 'changed';
await input.dispatchEvent(event);
input.dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -10,7 +11,8 @@ export default test({
async test({ assert, target, window }) {
const button = target.querySelector('button');
await button?.dispatchEvent(new window.MouseEvent('click', { bubbles: true }));
button?.dispatchEvent(new window.MouseEvent('click', { bubbles: true }));
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -7,10 +8,11 @@ export default test({
<button></button>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
// change from inside
const button = target.querySelector('button');
await button?.dispatchEvent(new window.Event('click', { bubbles: true }));
button?.dispatchEvent(new window.Event('click', { bubbles: true }));
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -8,10 +9,11 @@ export default test({
<button></button>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
// change from inside
const button = target.querySelector('button');
await button?.dispatchEvent(new window.Event('click', { bubbles: true }));
button?.dispatchEvent(new window.Event('click', { bubbles: true }));
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -10,10 +11,11 @@ export default test({
<button></button>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
// change from inside
const button = target.querySelector('button');
await button?.dispatchEvent(new window.Event('click', { bubbles: true }));
button?.dispatchEvent(new window.Event('click', { bubbles: true }));
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
// overflow bitmask + slot missing `let:`
@ -9,10 +10,11 @@ export default test({
<button>Toggle outside</button>
`,
async test({ assert, target, window }) {
test({ assert, target, window }) {
const button = target.querySelectorAll('button')[1];
const div = target.querySelector('div');
await div?.dispatchEvent(new window.MouseEvent('click', { bubbles: true }));
div?.dispatchEvent(new window.MouseEvent('click', { bubbles: true }));
flushSync();
assert.htmlEqual(
target.innerHTML,
`
@ -24,7 +26,8 @@ export default test({
`
);
await button.dispatchEvent(new window.MouseEvent('click', { bubbles: true }));
button.dispatchEvent(new window.MouseEvent('click', { bubbles: true }));
flushSync();
assert.htmlEqual(
target.innerHTML,
`

@ -1,20 +1,23 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
async test({ assert, target, window }) {
test({ assert, target, window }) {
const [input1, input2] = target.querySelectorAll('input');
assert.equal(input1.value, 'something');
assert.equal(input2.value, 'something');
input1.value = 'abc';
await input1.dispatchEvent(new window.Event('input'));
input1.dispatchEvent(new window.Event('input'));
flushSync();
assert.equal(input1.value, 'abc');
assert.equal(input2.value, 'abc');
await target
target
.querySelector('button')
?.dispatchEvent(new window.MouseEvent('click', { bubbles: true }));
flushSync();
assert.equal(input1.value, 'Reset');
assert.equal(input2.value, 'Reset');

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -9,11 +10,11 @@ export default test({
<p></p>
`,
async test({ assert, target, window }) {
test({ assert, target, window }) {
const button = target.querySelectorAll('button')[1];
await button.dispatchEvent(new window.Event('click', { bubbles: true }));
await Promise.resolve();
button.dispatchEvent(new window.Event('click', { bubbles: true }));
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -9,11 +10,11 @@ export default test({
<p></p>
`,
async test({ assert, target, window }) {
test({ assert, target, window }) {
const button = target.querySelectorAll('button')[1];
await button.dispatchEvent(new window.Event('click', { bubbles: true }));
await Promise.resolve();
button.dispatchEvent(new window.Event('click', { bubbles: true }));
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -17,15 +18,11 @@ export default test({
<p></p>
`,
async test({ assert, target, window }) {
test({ assert, target, window }) {
const button = target.querySelectorAll('button')[1];
await button.dispatchEvent(new window.Event('click', { bubbles: true }));
// Multiple ticks necessary because each update is async
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
button.dispatchEvent(new window.Event('click', { bubbles: true }));
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -11,14 +12,14 @@ export default test({
<p>foo</p>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const event = new window.MouseEvent('input');
const input = target.querySelector('input');
ok(input);
input.value = 'blah';
await input.dispatchEvent(event);
await Promise.resolve();
input.dispatchEvent(event);
flushSync();
assert.deepEqual(component.deep, { name: 'blah' });
assert.htmlEqual(

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -11,14 +12,14 @@ export default test({
<p>foo</p>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const event = new window.MouseEvent('input');
const input = target.querySelector('input');
ok(input);
input.value = 'blah';
await input.dispatchEvent(event);
await Promise.resolve();
input.dispatchEvent(event);
flushSync();
assert.deepEqual(component.deep, { name: 'blah' });
assert.htmlEqual(

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -13,13 +14,13 @@ export default test({
<p>foo, bar, baz</p>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const event = new window.MouseEvent('input');
const inputs = target.querySelectorAll('input');
inputs[0].value = 'blah';
await inputs[0].dispatchEvent(event);
await Promise.resolve();
inputs[0].dispatchEvent(event);
flushSync();
assert.deepEqual(component.a, [{ name: 'blah' }, { name: 'bar' }, { name: 'baz' }]);
assert.htmlEqual(

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -13,13 +14,13 @@ export default test({
<p>foo, bar, baz</p>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const event = new window.MouseEvent('input');
const inputs = target.querySelectorAll('input');
inputs[0].value = 'blah';
await inputs[0].dispatchEvent(event);
await Promise.resolve();
inputs[0].dispatchEvent(event);
flushSync();
assert.deepEqual(component.a, ['blah', 'bar', 'baz']);
assert.htmlEqual(

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -28,12 +29,12 @@ export default test({
<p><span>1</span></p>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const click = new window.MouseEvent('click', { bubbles: true });
const spans = target.querySelectorAll('span');
await spans[0].dispatchEvent(click);
await Promise.resolve();
spans[0].dispatchEvent(click);
flushSync();
assert.equal(component.currentIdentifier, 1);
assert.htmlEqual(
@ -65,8 +66,8 @@ export default test({
`
);
await spans[0].dispatchEvent(click);
await Promise.resolve();
spans[0].dispatchEvent(click);
flushSync();
assert.equal(component.currentIdentifier, null);
assert.htmlEqual(

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -15,11 +16,12 @@ export default test({
<p>baz x: initial</p>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const click = new window.MouseEvent('click', { bubbles: true });
const buttons = [...target.querySelectorAll('button')];
await buttons[0].dispatchEvent(click);
buttons[0].dispatchEvent(click);
flushSync();
assert.equal(component.x, 'p');
assert.htmlEqual(
@ -35,7 +37,8 @@ export default test({
`
);
await buttons[1].dispatchEvent(click);
buttons[1].dispatchEvent(click);
flushSync();
assert.equal(component.x, 'q');
assert.htmlEqual(
@ -51,7 +54,8 @@ export default test({
`
);
await buttons[2].dispatchEvent(click);
buttons[2].dispatchEvent(click);
flushSync();
assert.equal(component.x, 'r');
assert.htmlEqual(

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -11,7 +12,8 @@ export default test({
const button = target.querySelector('button');
ok(button);
await button.dispatchEvent(click);
button.dispatchEvent(click);
flushSync();
assert.equal(component.x, undefined);
assert.htmlEqual(
@ -22,7 +24,8 @@ export default test({
`
);
await button.dispatchEvent(click);
button.dispatchEvent(click);
flushSync();
assert.equal(component.x, undefined);
assert.htmlEqual(

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -6,12 +7,13 @@ export default test({
<p>count: 10</p>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const click = new window.MouseEvent('click', { bubbles: true });
const button = target.querySelector('button');
ok(button);
await button.dispatchEvent(click);
button.dispatchEvent(click);
flushSync();
assert.equal(component.x, 11);
assert.htmlEqual(
@ -22,7 +24,8 @@ export default test({
`
);
await button.dispatchEvent(click);
button.dispatchEvent(click);
flushSync();
assert.equal(component.x, 12);
assert.htmlEqual(

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -6,12 +7,13 @@ export default test({
<button>button 0</button>
`,
async test({ assert, target, window }) {
test({ assert, target, window }) {
const event = new window.MouseEvent('click', { bubbles: true });
const buttons = target.querySelectorAll('button');
await buttons[0].dispatchEvent(event);
buttons[0].dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,
`
@ -20,7 +22,8 @@ export default test({
`
);
await buttons[1].dispatchEvent(event);
buttons[1].dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,
`
@ -30,7 +33,8 @@ export default test({
);
// reactive update, reset to 2
await buttons[0].dispatchEvent(event);
buttons[0].dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,
`
@ -40,7 +44,8 @@ export default test({
);
// bound to main, reset to 2
await buttons[1].dispatchEvent(event);
buttons[1].dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,
`

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -9,10 +10,11 @@ export default test({
<button>Hide</button>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const click = new window.MouseEvent('click', { bubbles: true });
await target.querySelector('button')?.dispatchEvent(click);
target.querySelector('button')?.dispatchEvent(click);
flushSync();
assert.equal(component.show, false);
assert.htmlEqual(
@ -22,7 +24,8 @@ export default test({
`
);
await target.querySelector('button')?.dispatchEvent(click);
target.querySelector('button')?.dispatchEvent(click);
flushSync();
assert.equal(component.show, true);
assert.htmlEqual(

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -12,7 +13,7 @@ export default test({
<div></div>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
let count = 0;
component.callback = () => {
count++;
@ -21,8 +22,8 @@ export default test({
const [input1, input2] = target.querySelectorAll('input');
input1.value = '1';
await input1.dispatchEvent(new window.Event('input'));
await Promise.resolve();
input1.dispatchEvent(new window.Event('input'));
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -37,8 +38,8 @@ export default test({
assert.equal(count, 1);
input2.value = '123';
await input2.dispatchEvent(new window.Event('input'));
await Promise.resolve();
input2.dispatchEvent(new window.Event('input'));
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -53,8 +54,8 @@ export default test({
assert.equal(count, 2);
input1.value = '456';
await input1.dispatchEvent(new window.Event('input'));
await Promise.resolve();
input1.dispatchEvent(new window.Event('input'));
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -6,12 +7,13 @@ export default test({
<p>count: 0</p>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const click = new window.MouseEvent('click', { bubbles: true });
const button = target.querySelector('button');
ok(button);
await button.dispatchEvent(click);
button.dispatchEvent(click);
flushSync();
assert.equal(component.x, 1);
assert.htmlEqual(
@ -22,7 +24,8 @@ export default test({
`
);
await button.dispatchEvent(click);
button.dispatchEvent(click);
flushSync();
assert.equal(component.x, 2);
assert.htmlEqual(

@ -1,10 +1,12 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
html: `child: 0 parent: 0 <button>inc x</button>`,
async test({ assert, target }) {
await target.querySelector('button')?.click();
test({ assert, target }) {
target.querySelector('button')?.click();
flushSync();
assert.htmlEqual(target.innerHTML, `child: 1 parent: 1 <button>inc x</button>`);
}
});

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -6,10 +7,11 @@ export default test({
<button slot="footer">Button</button>
<button slot="footer">Button</button>
`,
async test({ assert, target, window }) {
test({ assert, target, window }) {
const [btn, btn1, btn2] = target.querySelectorAll('button');
await btn.dispatchEvent(new window.MouseEvent('click', { bubbles: true }));
btn.dispatchEvent(new window.MouseEvent('click', { bubbles: true }));
flushSync();
assert.equal(btn1.disabled, true);
assert.equal(btn2.disabled, true);

@ -1,19 +1,22 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
html: '<input> <input> <input>',
ssrHtml: '<input value="Blub"> <input value="Blub"> <input value="Blub">',
async test({ assert, target, component, window }) {
test({ assert, target, component, window }) {
const [input1, input2, inputFallback] = target.querySelectorAll('input');
// TODO this works differently now, deduplicates to one subscription - ok?
// assert.equal(component.getSubscriberCount(), 3);
input1.value = 'a';
await input1.dispatchEvent(new window.Event('input'));
input1.dispatchEvent(new window.Event('input'));
flushSync();
input1.value = 'ab';
await input1.dispatchEvent(new window.Event('input'));
input1.dispatchEvent(new window.Event('input'));
flushSync();
assert.equal(input1.value, 'ab');
assert.equal(input2.value, 'ab');
assert.equal(inputFallback.value, 'ab');

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -6,13 +7,14 @@ export default test({
<div>Icon B</div>
`,
async test({ assert, target, window }) {
test({ assert, target, window }) {
const btn = target.querySelector('button');
ok(btn);
const clickEvent = new window.MouseEvent('click', { bubbles: true });
await btn.dispatchEvent(clickEvent);
btn.dispatchEvent(clickEvent);
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -22,7 +24,8 @@ export default test({
`
);
await btn.dispatchEvent(clickEvent);
btn.dispatchEvent(clickEvent);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
// $$props reactivity in slot fallback
@ -11,12 +12,13 @@ export default test({
{"value":""}
`,
async test({ assert, target, window }) {
test({ assert, target, window }) {
const input = target.querySelector('input');
ok(input);
input.value = 'abc';
await input.dispatchEvent(new window.Event('input'));
input.dispatchEvent(new window.Event('input'));
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -6,11 +7,12 @@ export default test({
<span>0</span>
`,
async test({ assert, target, window }) {
test({ assert, target, window }) {
const button = target.querySelector('button');
const click = new window.MouseEvent('click', { bubbles: true });
await button?.dispatchEvent(click);
button?.dispatchEvent(click);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -6,11 +7,12 @@ export default test({
<span>0 ()</span>
`,
async test({ assert, target, window }) {
test({ assert, target, window }) {
const button = target.querySelector('button');
const click = new window.MouseEvent('click', { bubbles: true });
await button?.dispatchEvent(click);
button?.dispatchEvent(click);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -7,11 +8,12 @@ export default test({
</div>
`,
async test({ assert, target, window }) {
test({ assert, target, window }) {
const div = target.querySelector('div');
const click = new window.MouseEvent('click', { bubbles: true });
await div?.dispatchEvent(click);
div?.dispatchEvent(click);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -15,11 +16,12 @@ export default test({
<button>Increment</button>
</div>
`,
async test({ assert, target, window }) {
test({ assert, target, window }) {
const [button1, button2, button3] = target.querySelectorAll('button');
const event = new window.MouseEvent('click', { bubbles: true });
await button1.dispatchEvent(event);
button1.dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,
`
@ -38,7 +40,8 @@ export default test({
`
);
await button2.dispatchEvent(event);
button2.dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,
`
@ -57,7 +60,8 @@ export default test({
`
);
await button3.dispatchEvent(event);
button3.dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,
`

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -10,11 +11,12 @@ export default test({
</div>
`,
async test({ assert, target, window }) {
test({ assert, target, window }) {
const button = target.querySelector('button');
ok(button);
await button.dispatchEvent(new window.MouseEvent('click', { bubbles: true }));
button.dispatchEvent(new window.MouseEvent('click', { bubbles: true }));
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,15 +1,17 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
html: `
<input>
`,
async test({ assert, target, window }) {
test({ assert, target, window }) {
const input = target.querySelector('input');
ok(input);
input.value = 'a';
await input.dispatchEvent(new window.Event('input'));
input.dispatchEvent(new window.Event('input'));
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -20,7 +22,8 @@ export default test({
);
input.value = 'abc';
await input.dispatchEvent(new window.Event('input'));
input.dispatchEvent(new window.Event('input'));
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -6,11 +7,12 @@ export default test({
<span>0</span>
`,
async test({ assert, target, window }) {
test({ assert, target, window }) {
const button = target.querySelector('button');
const click = new window.MouseEvent('click', { bubbles: true });
await button?.dispatchEvent(click);
button?.dispatchEvent(click);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -6,11 +7,12 @@ export default test({
<span>0 ()</span>
`,
async test({ assert, target, window }) {
test({ assert, target, window }) {
const button = target.querySelector('button');
const click = new window.MouseEvent('click', { bubbles: true });
await button?.dispatchEvent(click);
button?.dispatchEvent(click);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -7,11 +8,12 @@ export default test({
</div>
`,
async test({ assert, target, window }) {
test({ assert, target, window }) {
const div = target.querySelector('div');
const click = new window.MouseEvent('click', { bubbles: true });
await div?.dispatchEvent(click);
div?.dispatchEvent(click);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -15,11 +16,12 @@ export default test({
<button>Increment</button>
</div>
`,
async test({ assert, target, window }) {
test({ assert, target, window }) {
const [button1, button2, button3] = target.querySelectorAll('button');
const event = new window.MouseEvent('click', { bubbles: true });
await button1.dispatchEvent(event);
button1.dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,
`
@ -38,7 +40,8 @@ export default test({
`
);
await button2.dispatchEvent(event);
button2.dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,
`
@ -57,7 +60,8 @@ export default test({
`
);
await button3.dispatchEvent(event);
button3.dispatchEvent(event);
flushSync();
assert.htmlEqual(
target.innerHTML,
`

@ -1,15 +1,17 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
async test({ assert, target }) {
test({ assert, target }) {
const btns = target.querySelectorAll('button');
const event = new window.MouseEvent('click', { bubbles: true });
await btns[0].dispatchEvent(event);
await btns[0].dispatchEvent(event);
await btns[1].dispatchEvent(event);
await btns[1].dispatchEvent(event);
await btns[1].dispatchEvent(event);
btns[0].dispatchEvent(event);
btns[0].dispatchEvent(event);
btns[1].dispatchEvent(event);
btns[1].dispatchEvent(event);
btns[1].dispatchEvent(event);
flushSync();
assert.equal(btns[1].innerHTML, '3');
}

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -14,11 +15,12 @@ export default test({
</div>
`,
async test({ assert, target, window }) {
test({ assert, target, window }) {
const button = target.querySelector('button');
const click = new window.MouseEvent('click', { bubbles: true });
await button?.dispatchEvent(click);
button?.dispatchEvent(click);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -6,11 +7,11 @@ export default test({
<div>[N] B <button>Toggle</button></div>
<div>[N] C <button>Toggle</button></div>
`,
async test({ target, assert, window }) {
test({ target, assert, window }) {
const [btn1, btn2, btn3] = target.querySelectorAll('button');
await btn1.dispatchEvent(new window.MouseEvent('click', { bubbles: true }));
await btn2.dispatchEvent(new window.MouseEvent('click', { bubbles: true }));
await Promise.resolve();
btn1.dispatchEvent(new window.MouseEvent('click', { bubbles: true }));
btn2.dispatchEvent(new window.MouseEvent('click', { bubbles: true }));
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -21,8 +22,8 @@ export default test({
`
);
await btn2.dispatchEvent(new window.MouseEvent('click', { bubbles: true }));
await Promise.resolve();
btn2.dispatchEvent(new window.MouseEvent('click', { bubbles: true }));
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -33,8 +34,8 @@ export default test({
`
);
await btn3.dispatchEvent(new window.MouseEvent('click', { bubbles: true }));
await Promise.resolve();
btn3.dispatchEvent(new window.MouseEvent('click', { bubbles: true }));
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -15,11 +16,12 @@ export default test({
</div>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const click = new window.MouseEvent('click', { bubbles: true });
let buttons = target.querySelectorAll('button');
await buttons[1].dispatchEvent(click);
buttons[1].dispatchEvent(click);
flushSync();
assert.htmlEqual(
target.innerHTML,
@ -54,7 +56,8 @@ export default test({
buttons = target.querySelectorAll('button');
await buttons[1].dispatchEvent(click);
buttons[1].dispatchEvent(click);
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { ok, test } from '../../test';
export default test({
@ -6,13 +7,14 @@ export default test({
<p>0</p>
`,
async test({ assert, component, target, window }) {
test({ assert, component, target, window }) {
const button = target.querySelector('button');
ok(button);
const event = new window.MouseEvent('click', { bubbles: true });
await button.dispatchEvent(event);
button.dispatchEvent(event);
flushSync();
assert.equal(component.counter, 1);
assert.htmlEqual(
target.innerHTML,
@ -22,7 +24,8 @@ export default test({
`
);
await button.dispatchEvent(event);
button.dispatchEvent(event);
flushSync();
assert.equal(component.counter, 2);
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -5,9 +6,10 @@ export default test({
<button>false</button>
<button>click handler marks foo as reactive</button>
`,
async test({ assert, target }) {
test({ assert, target }) {
const btn = target.querySelector('button');
await btn?.click();
btn?.click();
flushSync();
assert.htmlEqual(
target.innerHTML,

@ -1,3 +1,4 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
@ -9,7 +10,8 @@ export default test({
async test({ assert, component, window, target }) {
const button = target.querySelector('button');
// @ts-ignore
await button.dispatchEvent(new window.Event('click'));
button.dispatchEvent(new window.Event('click'));
flushSync();
assert.htmlEqual(
target.innerHTML,
`
@ -19,7 +21,8 @@ export default test({
);
assert.equal(component.n, 2);
// @ts-ignore
await button.dispatchEvent(new window.Event('click'));
button.dispatchEvent(new window.Event('click'));
flushSync();
assert.htmlEqual(
target.innerHTML,
`

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save