pull/15844/head
Rich Harris 3 months ago
parent 8d20a9af09
commit 2ae79f364d

@ -1,4 +1,4 @@
import { flushSync, tick } from 'svelte';
import { flushSync, settled, tick } from 'svelte';
import { deferred } from '../../../../src/internal/shared/utils.js';
import { test } from '../../test';
@ -19,6 +19,8 @@ export default test({
async test({ assert, target, component, logs }) {
d.resolve(42);
// TODO why is this necessary? why isn't `await tick()` enough?
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
@ -32,9 +34,6 @@ export default test({
assert.htmlEqual(target.innerHTML, '<p>42</p>');
component.num = 2;
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await tick();
assert.htmlEqual(target.innerHTML, '<p>84</p>');
@ -44,8 +43,6 @@ export default test({
assert.htmlEqual(target.innerHTML, '<p>84</p>');
d.resolve(43);
await Promise.resolve();
await Promise.resolve();
await tick();
assert.htmlEqual(target.innerHTML, '<p>86</p>');

@ -1,16 +1,11 @@
import { flushSync } from 'svelte';
import { flushSync, tick } from 'svelte';
import { test } from '../../test';
export default test({
html: `<p>pending...</p>`,
async test({ assert, target }) {
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await tick();
assert.htmlEqual(
target.innerHTML,
@ -30,10 +25,7 @@ export default test({
for (let i = 1; i < 5; i += 1) {
shift.click();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await tick();
assert.equal(p.innerHTML, `${i}: ${Math.min(i, 3)}`);
}

@ -1,4 +1,4 @@
import { flushSync, tick } from 'svelte';
import { tick } from 'svelte';
import { test } from '../../test';
export default test({
@ -7,25 +7,21 @@ export default test({
async test({ assert, target }) {
const [button1, button2, button3] = target.querySelectorAll('button');
flushSync(() => button1.click());
await Promise.resolve();
await Promise.resolve();
button1.click();
await tick();
flushSync();
assert.htmlEqual(
target.innerHTML,
'<button>step 1</button><button>step 2</button><button>step 3</button><p>a</p><p>b</p><p>c</p>'
);
flushSync(() => button2.click());
button2.click();
await tick();
assert.htmlEqual(
target.innerHTML,
'<button>step 1</button><button>step 2</button><button>step 3</button><p>a</p><p>b</p><p>c</p>'
);
flushSync(() => button3.click());
await Promise.resolve();
button3.click();
await tick();
assert.htmlEqual(
target.innerHTML,

@ -1,4 +1,4 @@
import { flushSync, tick } from 'svelte';
import { tick } from 'svelte';
import { deferred } from '../../../../src/internal/shared/utils.js';
import { test } from '../../test';
@ -18,10 +18,7 @@ export default test({
async test({ assert, target, component }) {
d.resolve(['a', 'b', 'c']);
await Promise.resolve();
await Promise.resolve();
await tick();
flushSync();
assert.htmlEqual(target.innerHTML, '<p>a</p><p>b</p><p>c</p>');
d = deferred();

@ -1,4 +1,4 @@
import { flushSync, tick } from 'svelte';
import { tick } from 'svelte';
import { test } from '../../test';
export default test({
@ -13,12 +13,7 @@ export default test({
},
async test({ assert, target }) {
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await tick();
assert.htmlEqual(
target.innerHTML,
@ -31,10 +26,8 @@ export default test({
let [button] = target.querySelectorAll('button');
let [p] = target.querySelectorAll('p');
flushSync(() => button.click());
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
button.click();
await tick();
assert.htmlEqual(
target.innerHTML,
`
@ -43,10 +36,8 @@ export default test({
`
);
flushSync(() => button.click());
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
button.click();
await tick();
assert.htmlEqual(
target.innerHTML,
`
@ -55,10 +46,8 @@ export default test({
`
);
flushSync(() => button.click());
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
button.click();
await tick();
assert.htmlEqual(
target.innerHTML,
`
@ -69,15 +58,11 @@ export default test({
const [button1, button2] = target.querySelectorAll('button');
flushSync(() => button1.click());
await Promise.resolve();
button1.click();
await tick();
flushSync(() => button2.click());
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
button2.click();
await tick();
[p] = target.querySelectorAll('p');
@ -89,10 +74,8 @@ export default test({
`
);
flushSync(() => button1.click());
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
button1.click();
await tick();
assert.htmlEqual(
target.innerHTML,
`

@ -1,4 +1,4 @@
import { flushSync, tick } from 'svelte';
import { tick } from 'svelte';
import { test } from '../../test';
export default test({
@ -7,29 +7,24 @@ export default test({
async test({ assert, target }) {
let [button1, button2, button3] = target.querySelectorAll('button');
flushSync(() => button1.click());
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
flushSync();
button1.click();
await tick();
assert.htmlEqual(
target.innerHTML,
'<button>step 1</button><button>step 2</button><button>step 3</button><p>oops!</p><button data-id="reset">reset</button>'
);
flushSync(() => button2.click());
button2.click();
const reset = /** @type {HTMLButtonElement} */ (target.querySelector('[data-id="reset"]'));
flushSync(() => reset.click());
reset.click();
assert.htmlEqual(
target.innerHTML,
'<button>step 1</button><button>step 2</button><button>step 3</button><p>pending</p>'
);
flushSync(() => button3.click());
await Promise.resolve();
button3.click();
await tick();
assert.htmlEqual(
target.innerHTML,

@ -12,12 +12,9 @@ export default test({
async test({ assert, target, raf }) {
const [reset, hello, goodbye] = target.querySelectorAll('button');
flushSync(() => hello.click());
hello.click();
raf.tick(0);
await Promise.resolve();
await Promise.resolve();
await tick();
flushSync();
assert.htmlEqual(
target.innerHTML,
`
@ -28,7 +25,7 @@ export default test({
`
);
flushSync(() => reset.click());
reset.click();
raf.tick(0);
await tick();
assert.htmlEqual(
@ -42,7 +39,7 @@ export default test({
`
);
flushSync(() => goodbye.click());
goodbye.click();
await Promise.resolve();
raf.tick(0);
await tick();

@ -1,4 +1,4 @@
import { flushSync, tick } from 'svelte';
import { tick } from 'svelte';
import { deferred } from '../../../../src/internal/shared/utils.js';
import { test } from '../../test';
@ -18,10 +18,7 @@ export default test({
async test({ assert, target, component }) {
d.resolve('hello');
await Promise.resolve();
await Promise.resolve();
await tick();
flushSync();
assert.htmlEqual(target.innerHTML, '<h1>hello</h1>');
component.promise = (d = deferred()).promise;

@ -1,4 +1,4 @@
import { flushSync, tick } from 'svelte';
import { tick } from 'svelte';
import { deferred } from '../../../../src/internal/shared/utils.js';
import { test } from '../../test';
@ -19,24 +19,21 @@ export default test({
async test({ assert, target }) {
const [reset, t, f] = target.querySelectorAll('button');
flushSync(() => t.click());
await Promise.resolve();
await Promise.resolve();
t.click();
await tick();
flushSync();
assert.htmlEqual(
target.innerHTML,
'<button>reset</button><button>true</button><button>false</button><h1>yes</h1>'
);
flushSync(() => reset.click());
reset.click();
await tick();
assert.htmlEqual(
target.innerHTML,
'<button>reset</button><button>true</button><button>false</button><h1>yes</h1>'
);
flushSync(() => f.click());
f.click();
await tick();
assert.htmlEqual(
target.innerHTML,

@ -1,4 +1,4 @@
import { flushSync, tick } from 'svelte';
import { tick } from 'svelte';
import { deferred } from '../../../../src/internal/shared/utils.js';
import { test } from '../../test';
@ -18,10 +18,7 @@ export default test({
async test({ assert, target, component }) {
d.resolve(1);
await Promise.resolve();
await Promise.resolve();
await tick();
flushSync();
assert.htmlEqual(target.innerHTML, '<h1>hello</h1>');
const h1 = target.querySelector('h1');

@ -1,4 +1,4 @@
import { flushSync, settled, tick } from 'svelte';
import { tick } from 'svelte';
import { test } from '../../test';
export default test({
@ -7,10 +7,7 @@ export default test({
async test({ assert, target }) {
const [both, a, b] = target.querySelectorAll('button');
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await tick();
assert.htmlEqual(
target.innerHTML,
@ -21,12 +18,10 @@ export default test({
`
);
flushSync(() => both.click());
flushSync(() => b.click());
both.click();
b.click();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await tick();
assert.htmlEqual(
target.innerHTML,

@ -5,12 +5,8 @@ export default test({
async test({ assert, target }) {
const [a, b, reset1, reset2, resolve1, resolve2] = target.querySelectorAll('button');
flushSync(() => resolve1.click());
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
resolve1.click();
await tick();
flushSync();
const p = /** @type {HTMLElement} */ (target.querySelector('#test'));
@ -21,21 +17,13 @@ export default test({
flushSync(() => reset2.click());
flushSync(() => b.click());
flushSync(() => resolve2.click());
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
resolve2.click();
await tick();
flushSync();
assert.htmlEqual(p.innerHTML, '1 + 2 = 3');
flushSync(() => resolve1.click());
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
resolve1.click();
await tick();
flushSync();
assert.htmlEqual(p.innerHTML, '2 + 3 = 5');
}

@ -1,4 +1,4 @@
import { flushSync, tick } from 'svelte';
import { tick } from 'svelte';
import { deferred } from '../../../../src/internal/shared/utils.js';
import { test } from '../../test';
@ -18,10 +18,7 @@ export default test({
async test({ assert, target, component }) {
d.resolve('hello');
await Promise.resolve();
await Promise.resolve();
await tick();
flushSync();
assert.htmlEqual(target.innerHTML, '<h1>hello</h1>');
d = deferred();

@ -1,4 +1,4 @@
import { flushSync, tick } from 'svelte';
import { tick } from 'svelte';
import { test } from '../../test';
export default test({
@ -9,16 +9,7 @@ export default test({
html: `<button>a</button><button>b</button><p>pending</p>`,
async test({ assert, target, warnings }) {
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await tick();
flushSync();
assert.htmlEqual(target.innerHTML, '<button>a</button><button>b</button><h1>3</h1>');
assert.deepEqual(warnings, ['Detected reactivity loss']);

Loading…
Cancel
Save