diff --git a/packages/svelte/tests/runtime-runes/samples/async-effect-after-boundary/Child.svelte b/packages/svelte/tests/runtime-runes/samples/async-effect-after-boundary/Child.svelte
new file mode 100644
index 0000000000..65a225431b
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-effect-after-boundary/Child.svelte
@@ -0,0 +1,5 @@
+
diff --git a/packages/svelte/tests/runtime-runes/samples/async-effect-after-boundary/_config.js b/packages/svelte/tests/runtime-runes/samples/async-effect-after-boundary/_config.js
new file mode 100644
index 0000000000..f7b6c513d4
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-effect-after-boundary/_config.js
@@ -0,0 +1,16 @@
+import { tick } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ async test({ assert, target, logs }) {
+ const [shift] = target.querySelectorAll('button');
+
+ await tick();
+ assert.deepEqual(logs, []);
+
+ shift.click();
+ await tick();
+
+ assert.deepEqual(logs, ['in effect']);
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/async-effect-after-boundary/main.svelte b/packages/svelte/tests/runtime-runes/samples/async-effect-after-boundary/main.svelte
new file mode 100644
index 0000000000..edfd3c4d10
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-effect-after-boundary/main.svelte
@@ -0,0 +1,22 @@
+
+
+
+
+
+ {await push('hello')}
+
+
+ {#snippet pending()}
+ loading...
+ {/snippet}
+