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 } });