diff --git a/packages/svelte/tests/runtime-runes/samples/async-overlapping-svelte-set/_config.js b/packages/svelte/tests/runtime-runes/samples/async-overlapping-svelte-set/_config.js index c7e549c429..e28ba86489 100644 --- a/packages/svelte/tests/runtime-runes/samples/async-overlapping-svelte-set/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/async-overlapping-svelte-set/_config.js @@ -1,9 +1,145 @@ +import { tick } from 'svelte'; import { test } from '../../test'; export default test({ async test({ assert, target }) { + await tick(); + const [add, shift, pop] = target.querySelectorAll('button'); - // TODO + add.click(); + await tick(); + add.click(); + await tick(); + assert.htmlEqual( + target.innerHTML, + ` + + + +
pending=2 values.size=1 values=[1]
+1: true
+2: false
+3: false
+4: false
+5: false
+1
+ ` + ); + + shift.click(); + await tick(); + assert.htmlEqual( + target.innerHTML, + ` + + + +pending=1 values.size=2 values=[1,2]
+1: true
+2: true
+3: false
+4: false
+5: false
+1
+2
+ ` + ); + + shift.click(); + await tick(); + assert.htmlEqual( + target.innerHTML, + ` + + + +pending=0 values.size=3 values=[1,2,3]
+1: true
+2: true
+3: true
+4: false
+5: false
+1
+2
+3
+ ` + ); + + add.click(); + await tick(); + add.click(); + await tick(); + assert.htmlEqual( + target.innerHTML, + ` + + + +pending=2 values.size=3 values=[1,2,3]
+1: true
+2: true
+3: true
+4: false
+5: false
+1
+2
+3
+ ` + ); + + pop.click(); + await tick(); + assert.htmlEqual( + target.innerHTML, + ` + + + +pending=1 values.size=3 values=[1,2,3]
+1: true
+2: true
+3: true
+4: false
+5: false
+1
+2
+3
+ ` + ); + + pop.click(); + await tick(); + assert.htmlEqual( + target.innerHTML, + ` + + + +pending=0 values.size=5 values=[1,2,3,4,5]
+1: true
+2: true
+3: true
+4: true
+5: true
+1
+2
+3
+4
+5
+ ` + ); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/async-overlapping-svelte-set/main.svelte b/packages/svelte/tests/runtime-runes/samples/async-overlapping-svelte-set/main.svelte index 56eac65192..5995a44990 100644 --- a/packages/svelte/tests/runtime-runes/samples/async-overlapping-svelte-set/main.svelte +++ b/packages/svelte/tests/runtime-runes/samples/async-overlapping-svelte-set/main.svelte @@ -24,7 +24,7 @@pending={$effect.pending()} - values.length={values.size} + values.size={values.size} values=[{Array.from(values)}]