From 84c8d09f315e29c182d8c7891acacc3e4e5917ea Mon Sep 17 00:00:00 2001 From: Michal Fox Date: Tue, 29 Sep 2026 11:33:39 +0200 Subject: [PATCH] chore: add regression test for $effect.pre rerun after flushSync Closes #18209 --- packages/svelte/tests/signals/test.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/packages/svelte/tests/signals/test.ts b/packages/svelte/tests/signals/test.ts index afc8669..68dad99 100644 --- a/packages/svelte/tests/signals/test.ts +++ b/packages/svelte/tests/signals/test.ts @@ -1151,6 +1151,28 @@ describe('signals', () => { }; }); + it('pre effect that writes its own dependency reruns on every flushSync', () => { + const destroy = effect_root(() => { + const control = state('A'); + const value = state(0); + + user_pre_effect(() => { + $.get(value); + set(value, $.get(control) === 'A' ? 1 : 2); + }); + + set(control, 'B'); + flushSync(); + assert.equal($.get(value), 2); + + set(control, 'A'); + flushSync(); + assert.equal($.get(value), 1); + }); + + destroy(); + }); + test('proxy version state does not trigger self-dependency guard', () => { return () => { const s = proxy({ a: { b: 1 } });