From 8e98c03e251827dd4e2c22cd97447c7623eeb9ce Mon Sep 17 00:00:00 2001 From: Simon Holthausen Date: Wed, 26 Aug 2026 11:41:41 +0200 Subject: [PATCH] adjust test --- .../_config.js | 24 +++++++++++++++---- .../main.svelte | 12 +++++----- 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/packages/svelte/tests/runtime-runes/samples/async-each-controlled-empty-pending/_config.js b/packages/svelte/tests/runtime-runes/samples/async-each-controlled-empty-pending/_config.js index 29d374deec..2d8bf11b3b 100644 --- a/packages/svelte/tests/runtime-runes/samples/async-each-controlled-empty-pending/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/async-each-controlled-empty-pending/_config.js @@ -15,15 +15,16 @@ export default test({ ` +

A0/B0

12
` ); - const [startA, startB, settleB] = target.querySelectorAll('button'); + const [startA, startB, settleA, settleB] = target.querySelectorAll('button'); - // Batch A: add key 9, then block forever on gate A. + // Batch A: add key 9, then block on gate A. startA.click(); await tick(); @@ -32,18 +33,31 @@ export default test({ await tick(); // Settle B first so B commits while A is still pending. - // Without the fix this throws reading `.e` of undefined and leaves a/b stuck. settleB.click(); await tick(); + assert.htmlEqual( + target.innerHTML, + ` + + + + +

A0/B0

+
12
+ ` + ); + settleA.click(); + await tick(); assert.htmlEqual( target.innerHTML, ` + -

A0/B1

-
+

A1/B1

+
9
` ); } diff --git a/packages/svelte/tests/runtime-runes/samples/async-each-controlled-empty-pending/main.svelte b/packages/svelte/tests/runtime-runes/samples/async-each-controlled-empty-pending/main.svelte index 68c3937c25..2af93f1a1b 100644 --- a/packages/svelte/tests/runtime-runes/samples/async-each-controlled-empty-pending/main.svelte +++ b/packages/svelte/tests/runtime-runes/samples/async-each-controlled-empty-pending/main.svelte @@ -8,6 +8,8 @@ // and are not merged. const items = $derived(extraKey === null ? base : [...base, extraKey]); + /** @type {((value: string) => void) | undefined} */ + let resolveA; /** @type {((value: string) => void) | undefined} */ let resolveB; @@ -19,7 +21,8 @@ n === 0 ? Promise.resolve(`${name}0`) : new Promise((r) => { - if (name === 'B') resolveB = r; + if (name === 'A') resolveA = r; + else resolveB = r; }); const a = $derived(await gate('A', tickA)); @@ -34,15 +37,12 @@ base = []; tickB = 1; } - - function settleB() { - resolveB?.('B1'); - } - + +

{a}/{b}