From bf803761300c5d6c0983a2e04bc60f7294fda09a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20S=C3=B6derlund?= Date: Thu, 1 Feb 2024 10:43:06 +0100 Subject: [PATCH 1/2] Reproduced issue with failing test. --- .../samples/bind-group-nested-data/_config.js | 23 ++++++++++ .../bind-group-nested-data/main.svelte | 44 +++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 packages/svelte/tests/runtime-runes/samples/bind-group-nested-data/_config.js create mode 100644 packages/svelte/tests/runtime-runes/samples/bind-group-nested-data/main.svelte diff --git a/packages/svelte/tests/runtime-runes/samples/bind-group-nested-data/_config.js b/packages/svelte/tests/runtime-runes/samples/bind-group-nested-data/_config.js new file mode 100644 index 000000000000..6dd11d13cb9f --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/bind-group-nested-data/_config.js @@ -0,0 +1,23 @@ +import { test } from '../../test'; + +export default test({ + async test({ assert, target, window, component }) { + const checkboxes = /** @type {NodeListOf} */ ( + target.querySelectorAll('input[type="checkbox"]') + ); + + assert.isFalse(checkboxes[0].checked); + assert.isTrue(checkboxes[1].checked); + assert.isFalse(checkboxes[2].checked); + + await checkboxes[1].click(); + + const noChecked = target.querySelector('#output')?.innerHTML; + assert.equal(noChecked, ''); + + await checkboxes[1].click(); + + const oneChecked = target.querySelector('#output')?.innerHTML; + assert.equal(oneChecked, 'Mint choc chip'); + } +}); diff --git a/packages/svelte/tests/runtime-runes/samples/bind-group-nested-data/main.svelte b/packages/svelte/tests/runtime-runes/samples/bind-group-nested-data/main.svelte new file mode 100644 index 000000000000..5213bf1ac90c --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/bind-group-nested-data/main.svelte @@ -0,0 +1,44 @@ + + +
+

Size

+ + + + + + + +

Flavours

+ + {#each menu as flavour} + + {/each} +
+ +
+

Current flavours

+ {$order.flavours.join('+')} +
From e75b2a1ed29ebd9dba1cb4a871bd5f3e950548b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20S=C3=B6derlund?= Date: Thu, 1 Feb 2024 13:48:48 +0100 Subject: [PATCH 2/2] Shortened down example code. --- .../bind-group-nested-data/main.svelte | 39 ++++--------------- 1 file changed, 7 insertions(+), 32 deletions(-) diff --git a/packages/svelte/tests/runtime-runes/samples/bind-group-nested-data/main.svelte b/packages/svelte/tests/runtime-runes/samples/bind-group-nested-data/main.svelte index 5213bf1ac90c..885adf576092 100644 --- a/packages/svelte/tests/runtime-runes/samples/bind-group-nested-data/main.svelte +++ b/packages/svelte/tests/runtime-runes/samples/bind-group-nested-data/main.svelte @@ -2,43 +2,18 @@ import { writable } from 'svelte/store'; let menu = ['Cookies and cream', 'Mint choc chip', 'Raspberry ripple']; - let order = writable({ flavours: ['Mint choc chip'], scoops: 1 }); + let order = writable({ iceCream: [{flavours: ['Mint choc chip']}], scoops: 1 }); + let index = 0
-

Size

- - - - - - - -

Flavours

+ One scoop + Two scoops + Three scoops {#each menu as flavour} - + {flavour} {/each}
-
-

Current flavours

- {$order.flavours.join('+')} -
+
{$order.iceCream[index].flavours.join('+')}