From: Tycho Date: Thu, 6 Jun 2024 09:52:01 +0000 (+0800) Subject: test(effect): verify cleanupEffect clears multiple dependencies (#9503) X-Git-Tag: v3.4.28~29 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d04417da41ae0faec6a22cbf96d7c8e9b7d92130;p=thirdparty%2Fvuejs%2Fcore.git test(effect): verify cleanupEffect clears multiple dependencies (#9503) close #5541 --- diff --git a/packages/reactivity/__tests__/effect.spec.ts b/packages/reactivity/__tests__/effect.spec.ts index 422852fd5e..97dbfec5df 100644 --- a/packages/reactivity/__tests__/effect.spec.ts +++ b/packages/reactivity/__tests__/effect.spec.ts @@ -846,6 +846,31 @@ describe('reactivity/effect', () => { expect(dummy).toBe(3) }) + it('stop with multiple dependencies', () => { + let dummy1, dummy2 + const obj1 = reactive({ prop: 1 }) + const obj2 = reactive({ prop: 1 }) + const runner = effect(() => { + dummy1 = obj1.prop + dummy2 = obj2.prop + }) + + obj1.prop = 2 + expect(dummy1).toBe(2) + + obj2.prop = 3 + expect(dummy2).toBe(3) + + stop(runner) + + obj1.prop = 4 + obj2.prop = 5 + + // Check that both dependencies have been cleared + expect(dummy1).toBe(2) + expect(dummy2).toBe(3) + }) + it('events: onStop', () => { const onStop = vi.fn() const runner = effect(() => {}, {