diff --git a/packages/svelte/tests/runtime-legacy/samples/key-block-transition-global/_config.js b/packages/svelte/tests/runtime-legacy/samples/key-block-transition-global/_config.js
new file mode 100644
index 0000000000..0b24498670
--- /dev/null
+++ b/packages/svelte/tests/runtime-legacy/samples/key-block-transition-global/_config.js
@@ -0,0 +1,25 @@
+import { flushSync } from '../../../../src/main/main-client';
+import { test } from '../../test';
+
+export default test({
+ html: '
0
',
+ async test({ assert, component, target, raf }) {
+ component.value = 2;
+
+ const [button] = /** @type {NodeListOf} */ (
+ target.querySelectorAll('button')
+ );
+
+ raf.tick(0);
+
+ assert.htmlEqual(target.innerHTML, '2
');
+
+ flushSync(() => {
+ button.click();
+ });
+
+ raf.tick(0);
+
+ assert.htmlEqual(target.innerHTML, '');
+ }
+});
diff --git a/packages/svelte/tests/runtime-legacy/samples/key-block-transition-global/main.svelte b/packages/svelte/tests/runtime-legacy/samples/key-block-transition-global/main.svelte
new file mode 100644
index 0000000000..408719763d
--- /dev/null
+++ b/packages/svelte/tests/runtime-legacy/samples/key-block-transition-global/main.svelte
@@ -0,0 +1,22 @@
+
+
+{#if toggle}
+ {#key value}
+ {value}
+ {/key}
+{/if}
+
+