diff --git a/packages/svelte/tests/runtime-runes/samples/state-onchange/_config.js b/packages/svelte/tests/runtime-runes/samples/state-onchange/_config.js
index 4864e64cd6..4b1985a1f9 100644
--- a/packages/svelte/tests/runtime-runes/samples/state-onchange/_config.js
+++ b/packages/svelte/tests/runtime-runes/samples/state-onchange/_config.js
@@ -3,7 +3,7 @@ import { test } from '../../test';
export default test({
async test({ assert, target, logs }) {
- const [btn, btn2, btn3, btn4, btn5, btn6] = target.querySelectorAll('button');
+ const [btn, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9] = target.querySelectorAll('button');
flushSync(() => {
btn.click();
});
@@ -40,5 +40,47 @@ export default test({
'class proxy',
'class proxy'
]);
+
+ flushSync(() => {
+ btn7.click();
+ });
+ assert.deepEqual(logs, [
+ 'count',
+ 'proxy',
+ 'proxy',
+ 'class count',
+ 'class proxy',
+ 'class proxy',
+ 'arr'
+ ]);
+
+ flushSync(() => {
+ btn8.click();
+ });
+ assert.deepEqual(logs, [
+ 'count',
+ 'proxy',
+ 'proxy',
+ 'class count',
+ 'class proxy',
+ 'class proxy',
+ 'arr',
+ 'arr'
+ ]);
+
+ flushSync(() => {
+ btn9.click();
+ });
+ assert.deepEqual(logs, [
+ 'count',
+ 'proxy',
+ 'proxy',
+ 'class count',
+ 'class proxy',
+ 'class proxy',
+ 'arr',
+ 'arr',
+ 'arr'
+ ]);
}
});
diff --git a/packages/svelte/tests/runtime-runes/samples/state-onchange/main.svelte b/packages/svelte/tests/runtime-runes/samples/state-onchange/main.svelte
index 46253488d2..efa688fc15 100644
--- a/packages/svelte/tests/runtime-runes/samples/state-onchange/main.svelte
+++ b/packages/svelte/tests/runtime-runes/samples/state-onchange/main.svelte
@@ -25,6 +25,12 @@
}
const class_test = new Test();
+
+ let arr = $state([0,1,2], {
+ onchange(){
+ console.log("arr");
+ }
+ })
@@ -33,4 +39,8 @@
-
\ No newline at end of file
+
+
+
+
+
\ No newline at end of file