diff --git a/packages/svelte/tests/runtime-legacy/samples/nested-component-bind-group/Flavour.svelte b/packages/svelte/tests/runtime-legacy/samples/nested-component-bind-group/Flavour.svelte new file mode 100644 index 000000000000..6d826954c921 --- /dev/null +++ b/packages/svelte/tests/runtime-legacy/samples/nested-component-bind-group/Flavour.svelte @@ -0,0 +1,5 @@ + + diff --git a/packages/svelte/tests/runtime-legacy/samples/nested-component-bind-group/_config.js b/packages/svelte/tests/runtime-legacy/samples/nested-component-bind-group/_config.js new file mode 100644 index 000000000000..36fb5b494f50 --- /dev/null +++ b/packages/svelte/tests/runtime-legacy/samples/nested-component-bind-group/_config.js @@ -0,0 +1,36 @@ +import { test } from '../../test'; + +export default test({ + async test({ assert, target, window }) { + const els = target.querySelectorAll('input'); + assert.equal(els.length, 3); + const [input1, input2, input3] = els; + const event = new window.Event('change'); + + // I don't know why this is needed to set the checkboxes back to default (unchecked) + for (const input of els) { + input.checked = false; + await input.dispatchEvent(event); + } + + assert.equal(input1.checked, false); + assert.equal(input2.checked, false); + assert.equal(input3.checked, false); + + input3.checked = true; + await input3.dispatchEvent(event); + await Promise.resolve(); + + assert.equal(input1.checked, false); + assert.equal(input2.checked, false); + assert.equal(input3.checked, true); + + input1.checked = true; + await input1.dispatchEvent(event); + await Promise.resolve(); + + assert.equal(input1.checked, true); + assert.equal(input2.checked, false); + assert.equal(input3.checked, true); + } +}); diff --git a/packages/svelte/tests/runtime-legacy/samples/nested-component-bind-group/main.svelte b/packages/svelte/tests/runtime-legacy/samples/nested-component-bind-group/main.svelte new file mode 100644 index 000000000000..8b8c981f753d --- /dev/null +++ b/packages/svelte/tests/runtime-legacy/samples/nested-component-bind-group/main.svelte @@ -0,0 +1,14 @@ + + +{#each menu as flavour} + +{/each} diff --git a/packages/svelte/tests/runtime-legacy/samples/nested-component-bind-group/stores.js b/packages/svelte/tests/runtime-legacy/samples/nested-component-bind-group/stores.js new file mode 100644 index 000000000000..b5db04a1eded --- /dev/null +++ b/packages/svelte/tests/runtime-legacy/samples/nested-component-bind-group/stores.js @@ -0,0 +1,5 @@ +import { writable } from 'svelte/store'; + +export const flavours = writable([]); + +flavours.subscribe(console.log) \ No newline at end of file