diff --git a/packages/svelte/tests/runtime-runes/samples/state-onchange-extrapolated-reference/_config.js b/packages/svelte/tests/runtime-runes/samples/state-onchange-extrapolated-reference/_config.js
new file mode 100644
index 0000000000..27f3a73187
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/state-onchange-extrapolated-reference/_config.js
@@ -0,0 +1,23 @@
+import { flushSync } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ async test({ assert, target, logs }) {
+ const [btn, btn2, btn3, btn4] = target.querySelectorAll('button');
+ logs.length = 0;
+
+ flushSync(() => {
+ btn.click();
+ });
+ flushSync(() => {
+ btn2.click();
+ });
+ flushSync(() => {
+ btn3.click();
+ });
+ flushSync(() => {
+ btn4.click();
+ });
+ assert.deepEqual(logs, []);
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/state-onchange-extrapolated-reference/main.svelte b/packages/svelte/tests/runtime-runes/samples/state-onchange-extrapolated-reference/main.svelte
new file mode 100644
index 0000000000..3a039bbd23
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/state-onchange-extrapolated-reference/main.svelte
@@ -0,0 +1,31 @@
+
+
+
+
+
+