diff --git a/packages/svelte/tests/migrate/samples/each-block-const/output.svelte b/packages/svelte/tests/migrate/samples/each-block-const/output.svelte index 4cd6ee6f01..df153d8dd6 100644 --- a/packages/svelte/tests/migrate/samples/each-block-const/output.svelte +++ b/packages/svelte/tests/migrate/samples/each-block-const/output.svelte @@ -1,5 +1,5 @@ -{#each foo as f}{/each} \ No newline at end of file +{#each foo as f}{/each} diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-text-contextual-reactive/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-input-text-contextual-reactive/_config.js new file mode 100644 index 0000000000..c8019e11e9 --- /dev/null +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-text-contextual-reactive/_config.js @@ -0,0 +1,134 @@ +import { flushSync } from 'svelte'; +import { test } from '../../test'; + +export default test({ + html: ` +
+ +

one

+
+
+ +

two

+
+
+ +

three

+
+ +

remaining:one / done:two / remaining:three

+ `, + + ssrHtml: ` +
+ +

one

+
+
+ +

two

+
+
+ +

three

+
+ +

remaining:one / done:two / remaining:three

+ `, + + test({ assert, component, target, window }) { + /** + * @param {number} i + * @param {string} text + */ + function set_text(i, text) { + const input = /** @type {HTMLInputElement} */ ( + target.querySelectorAll('input[type="text"]')[i] + ); + input.value = text; + input.dispatchEvent(new window.Event('input')); + } + + /** + * @param {number} i + * @param {boolean} done + */ + function set_done(i, done) { + const input = /** @type {HTMLInputElement} */ ( + target.querySelectorAll('input[type="checkbox"]')[i] + ); + input.checked = done; + input.dispatchEvent(new window.Event('change')); + } + + component.filter = 'remaining'; + + assert.htmlEqual( + target.innerHTML, + ` +
+ +

one

+
+
+ +

three

+
+ +

remaining:one / done:two / remaining:three

+ ` + ); + + set_text(1, 'four'); + flushSync(); + + assert.htmlEqual( + target.innerHTML, + ` +
+ +

one

+
+
+ +

four

+
+ +

remaining:one / done:two / remaining:four

+ ` + ); + + set_done(0, true); + flushSync(); + + assert.htmlEqual( + target.innerHTML, + ` +
+ +

four

+
+ +

done:one / done:two / remaining:four

+ ` + ); + + component.filter = 'done'; + + assert.htmlEqual( + target.innerHTML, + ` +
+ +

one

+
+
+ +

two

+
+ +

done:one / done:two / remaining:four

+ ` + ); + } +}); diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-input-text-contextual-reactive/main.svelte b/packages/svelte/tests/runtime-legacy/samples/binding-input-text-contextual-reactive/main.svelte new file mode 100644 index 0000000000..9ca7832a72 --- /dev/null +++ b/packages/svelte/tests/runtime-legacy/samples/binding-input-text-contextual-reactive/main.svelte @@ -0,0 +1,30 @@ + + +{#each filtered as item} +
+ + +

{item.text}

+
+{/each} + +

{summary}