get rid of a bunch of Promise.resolve chains

pull/15844/head
Rich Harris 3 months ago
parent 66635c5c34
commit 8d20a9af09

@ -423,6 +423,12 @@ async function run_test_variant(
try { try {
if (config.test) { if (config.test) {
flushSync(); flushSync();
if (variant === 'hydrate') {
// wait for pending boundaries to render
await Promise.resolve();
}
await config.test({ await config.test({
// @ts-expect-error TS doesn't get it // @ts-expect-error TS doesn't get it
assert: { assert: {

@ -1,12 +1,8 @@
import { settled } from 'svelte'; import { settled, tick } from 'svelte';
import { test } from '../../test'; import { test } from '../../test';
export default test({ export default test({
async test({ assert, target, logs, variant }) { async test({ assert, target, logs, variant }) {
if (variant === 'hydrate') {
await Promise.resolve();
}
const [reset, resolve] = target.querySelectorAll('button'); const [reset, resolve] = target.querySelectorAll('button');
reset.click(); reset.click();
@ -14,12 +10,7 @@ export default test({
assert.deepEqual(logs, ['aborted']); assert.deepEqual(logs, ['aborted']);
resolve.click(); resolve.click();
await Promise.resolve(); await tick();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
assert.htmlEqual( assert.htmlEqual(
target.innerHTML, target.innerHTML,
` `

@ -1,4 +1,4 @@
import { flushSync, tick } from 'svelte'; import { tick } from 'svelte';
import { ok, test } from '../../test'; import { ok, test } from '../../test';
export default test({ export default test({
@ -12,22 +12,17 @@ export default test({
async test({ assert, target }) { async test({ assert, target }) {
const [cool, neat, reset] = target.querySelectorAll('button'); const [cool, neat, reset] = target.querySelectorAll('button');
flushSync(() => cool.click()); cool.click();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await tick(); await tick();
flushSync();
const p = target.querySelector('p'); const p = target.querySelector('p');
ok(p); ok(p);
assert.htmlEqual(p.outerHTML, '<p class="cool">hello</p>'); assert.htmlEqual(p.outerHTML, '<p class="cool">hello</p>');
flushSync(() => reset.click()); reset.click();
assert.htmlEqual(p.outerHTML, '<p class="cool">hello</p>'); assert.htmlEqual(p.outerHTML, '<p class="cool">hello</p>');
flushSync(() => neat.click()); neat.click();
await Promise.resolve();
await tick(); await tick();
assert.htmlEqual(p.outerHTML, '<p class="neat">hello</p>'); assert.htmlEqual(p.outerHTML, '<p class="neat">hello</p>');
} }

@ -1,5 +1,5 @@
import { flushSync, tick } from 'svelte'; import { flushSync, tick } from 'svelte';
import { ok, test } from '../../test'; import { test } from '../../test';
export default test({ export default test({
html: ` html: `
@ -7,20 +7,9 @@ export default test({
<p>loading</p> <p>loading</p>
`, `,
async test({ assert, target, variant }) { async test({ assert, target }) {
if (variant === 'hydrate') { target.querySelector('button')?.click();
await Promise.resolve();
}
flushSync(() => {
target.querySelector('button')?.click();
});
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await tick(); await tick();
flushSync();
const [button1, button2] = target.querySelectorAll('button'); const [button1, button2] = target.querySelectorAll('button');
@ -37,12 +26,8 @@ export default test({
flushSync(() => button2.click()); flushSync(() => button2.click());
flushSync(() => button2.click()); flushSync(() => button2.click());
flushSync(() => button1.click()); button1.click();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await tick(); await tick();
flushSync();
assert.htmlEqual( assert.htmlEqual(
target.innerHTML, target.innerHTML,
@ -54,12 +39,8 @@ export default test({
` `
); );
flushSync(() => button1.click()); button1.click();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await tick(); await tick();
flushSync();
assert.htmlEqual( assert.htmlEqual(
target.innerHTML, target.innerHTML,

@ -1,18 +1,12 @@
import { flushSync } from 'svelte'; import { tick } from 'svelte';
import { test } from '../../test'; import { test } from '../../test';
export default test({ export default test({
async test({ assert, target }) { async test({ assert, target }) {
const button = target.querySelector('button'); const button = target.querySelector('button');
flushSync(() => button?.click()); button?.click();
await Promise.resolve(); await tick();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
flushSync();
assert.htmlEqual( assert.htmlEqual(
target.innerHTML, target.innerHTML,

@ -1,4 +1,4 @@
import { flushSync, tick } from 'svelte'; import { tick } from 'svelte';
import { test } from '../../test'; import { test } from '../../test';
export default test({ export default test({
@ -9,29 +9,13 @@ export default test({
<p>pending</p> <p>pending</p>
`, `,
async test({ assert, target, component, errors, variant }) { async test({ assert, target, errors }) {
if (variant === 'hydrate') {
await Promise.resolve();
}
const [toggle, resolve1, resolve2] = target.querySelectorAll('button'); const [toggle, resolve1, resolve2] = target.querySelectorAll('button');
flushSync(() => toggle.click()); toggle.click();
resolve1.click();
flushSync(() => resolve1.click()); resolve2.click();
await Promise.resolve();
await Promise.resolve();
flushSync(() => resolve2.click());
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 Promise.resolve();
await tick(); await tick();
assert.htmlEqual( assert.htmlEqual(

@ -1,4 +1,4 @@
import { flushSync, tick } from 'svelte'; import { flushSync, settled, tick } from 'svelte';
import { ok, test } from '../../test'; import { ok, test } from '../../test';
export default test({ export default test({
@ -14,30 +14,20 @@ export default test({
const [resolve_a, resolve_b, reset, increment] = target.querySelectorAll('button'); const [resolve_a, resolve_b, reset, increment] = target.querySelectorAll('button');
flushSync(() => resolve_a.click()); flushSync(() => resolve_a.click());
await Promise.resolve(); await tick();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
await Promise.resolve();
flushSync();
const p = target.querySelector('p'); const p = target.querySelector('p');
ok(p); ok(p);
assert.htmlEqual(p.innerHTML, '1a'); assert.htmlEqual(p.innerHTML, '1a');
flushSync(() => increment.click()); flushSync(() => increment.click());
await Promise.resolve();
await Promise.resolve();
await tick(); await tick();
assert.htmlEqual(p.innerHTML, '2a'); assert.htmlEqual(p.innerHTML, '2a');
flushSync(() => reset.click()); reset.click();
assert.htmlEqual(p.innerHTML, '2a'); assert.htmlEqual(p.innerHTML, '2a');
flushSync(() => resolve_b.click()); resolve_b.click();
await Promise.resolve();
await Promise.resolve();
await tick(); await tick();
assert.htmlEqual(p.innerHTML, '2b'); assert.htmlEqual(p.innerHTML, '2b');

Loading…
Cancel
Save