From 2f227b12189bc422cb23fba95571ecfa77b35db9 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Sun, 13 Jul 2025 17:55:42 -0400 Subject: [PATCH] more --- .../samples/async-derived-module/_config.js | 76 +++++++++++++------ .../samples/async-derived-module/main.svelte | 10 ++- 2 files changed, 61 insertions(+), 25 deletions(-) diff --git a/packages/svelte/tests/runtime-runes/samples/async-derived-module/_config.js b/packages/svelte/tests/runtime-runes/samples/async-derived-module/_config.js index 7a20ecda92..f7d1d28fde 100644 --- a/packages/svelte/tests/runtime-runes/samples/async-derived-module/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/async-derived-module/_config.js @@ -1,24 +1,19 @@ import { flushSync, tick } from 'svelte'; -import { deferred } from '../../../../src/internal/shared/utils.js'; import { test } from '../../test'; -/** @type {ReturnType} */ -let d; - export default test({ - html: `

pending

`, - - get props() { - d = deferred(); + html: ` + + + + +

pending

+ `, - return { - promise: d.promise, - num: 1 - }; - }, + async test({ assert, target, logs }) { + const [reset, a, b, increment] = target.querySelectorAll('button'); - async test({ assert, target, component, logs }) { - d.resolve(42); + a.click(); // TODO why is this necessary? why isn't `await tick()` enough? await Promise.resolve(); @@ -31,20 +26,55 @@ export default test({ await Promise.resolve(); flushSync(); await tick(); - assert.htmlEqual(target.innerHTML, '

42

'); + assert.htmlEqual( + target.innerHTML, + ` + + + + +

42

+ ` + ); - component.num = 2; + increment.click(); await tick(); - assert.htmlEqual(target.innerHTML, '

84

'); + assert.htmlEqual( + target.innerHTML, + ` + + + + +

84

+ ` + ); - d = deferred(); - component.promise = d.promise; + reset.click(); await tick(); - assert.htmlEqual(target.innerHTML, '

84

'); + assert.htmlEqual( + target.innerHTML, + ` + + + + +

84

+ ` + ); - d.resolve(43); + b.click(); await tick(); - assert.htmlEqual(target.innerHTML, '

86

'); + assert.htmlEqual( + target.innerHTML, + ` + + + + +

86

+ ` + ); assert.deepEqual(logs, [ 'outside boundary 1', diff --git a/packages/svelte/tests/runtime-runes/samples/async-derived-module/main.svelte b/packages/svelte/tests/runtime-runes/samples/async-derived-module/main.svelte index e90bbf720e..2c83e1d23d 100644 --- a/packages/svelte/tests/runtime-runes/samples/async-derived-module/main.svelte +++ b/packages/svelte/tests/runtime-runes/samples/async-derived-module/main.svelte @@ -1,11 +1,17 @@ + + + + + - + {#snippet pending()}

pending