From 27b37bb143594c74087d967bedce2da305ab7e73 Mon Sep 17 00:00:00 2001 From: raythurnvoid <53383860+raythurnvoid@users.noreply.github.com> Date: Sun, 15 Jun 2025 00:10:11 +0100 Subject: [PATCH] Add tests --- .../binding-select-reactive-block/_config.js | 46 +++++++++++++++++++ .../binding-select-reactive-block/main.svelte | 41 +++++++++++++++++ .../_config.js | 46 +++++++++++++++++++ .../main.svelte | 38 +++++++++++++++ 4 files changed, 171 insertions(+) create mode 100644 packages/svelte/tests/runtime-legacy/samples/binding-select-reactive-block/_config.js create mode 100644 packages/svelte/tests/runtime-legacy/samples/binding-select-reactive-block/main.svelte create mode 100644 packages/svelte/tests/runtime-legacy/samples/binding-select-reactive-fallback/_config.js create mode 100644 packages/svelte/tests/runtime-legacy/samples/binding-select-reactive-fallback/main.svelte diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-select-reactive-block/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-select-reactive-block/_config.js new file mode 100644 index 0000000000..79d8ffff06 --- /dev/null +++ b/packages/svelte/tests/runtime-legacy/samples/binding-select-reactive-block/_config.js @@ -0,0 +1,46 @@ +import { test } from '../../test'; +import { tick } from 'svelte'; + +export default test({ + html: ` + + + + + `, + + async test({ assert, component, window, logs }) { + // Primary assertion: No infinite loop error + assert.notInclude(logs, 'Infinite loop detected'); + + // Verify component state + const select = window.document.querySelector('select'); + if (!select) { + assert.fail('Select element not found'); + return; + } + + // With default_details fallback nothing is selected + assert.equal(select.value, ''); + assert.equal(select.disabled, false); + + window.document.getElementById('btn-us')?.click(); + await tick(); + assert.equal(select.disabled, true); + assert.equal(select.value, 'US'); + + window.document.getElementById('btn-reset')?.click(); + await tick(); + assert.equal(select.value, ''); + assert.equal(select.disabled, false); + + window.document.getElementById('btn-fr')?.click(); + await tick(); + assert.equal(select.value, 'FR'); + assert.equal(select.disabled, true); + } +}); diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-select-reactive-block/main.svelte b/packages/svelte/tests/runtime-legacy/samples/binding-select-reactive-block/main.svelte new file mode 100644 index 0000000000..45f2b129e8 --- /dev/null +++ b/packages/svelte/tests/runtime-legacy/samples/binding-select-reactive-block/main.svelte @@ -0,0 +1,41 @@ + + + + + + + diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-select-reactive-fallback/_config.js b/packages/svelte/tests/runtime-legacy/samples/binding-select-reactive-fallback/_config.js new file mode 100644 index 0000000000..d4274870ca --- /dev/null +++ b/packages/svelte/tests/runtime-legacy/samples/binding-select-reactive-fallback/_config.js @@ -0,0 +1,46 @@ +import { tick } from 'svelte'; +import { test } from '../../test'; + +export default test({ + html: ` + + + + + `, + + async test({ assert, component, window, logs }) { + // Primary assertion: No infinite loop error + assert.notInclude(logs, 'Infinite loop detected'); + + // Verify component state + const select = window.document.querySelector('select'); + if (!select) { + assert.fail('Select element not found'); + return; + } + + // With default_details fallback nothing is selected + assert.equal(select.value, ''); + assert.equal(select.disabled, false); + + window.document.getElementById('btn-us')?.click(); + await tick(); + assert.equal(select.disabled, true); + assert.equal(select.value, 'US'); + + window.document.getElementById('btn-reset')?.click(); + await tick(); + assert.equal(select.value, ''); + assert.equal(select.disabled, false); + + window.document.getElementById('btn-fr')?.click(); + await tick(); + assert.equal(select.value, 'FR'); + assert.equal(select.disabled, true); + } +}); diff --git a/packages/svelte/tests/runtime-legacy/samples/binding-select-reactive-fallback/main.svelte b/packages/svelte/tests/runtime-legacy/samples/binding-select-reactive-fallback/main.svelte new file mode 100644 index 0000000000..09b5dff734 --- /dev/null +++ b/packages/svelte/tests/runtime-legacy/samples/binding-select-reactive-fallback/main.svelte @@ -0,0 +1,38 @@ + + + + + + +