]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
test(effect): verify cleanupEffect clears multiple dependencies (#9503)
authorTycho <jh.leong@outlook.com>
Thu, 6 Jun 2024 09:52:01 +0000 (17:52 +0800)
committerGitHub <noreply@github.com>
Thu, 6 Jun 2024 09:52:01 +0000 (17:52 +0800)
close #5541

packages/reactivity/__tests__/effect.spec.ts

index 422852fd5ee544382dbf55fa0d6936545b3616d1..97dbfec5df9991906b57f8b2a485f6c9268eac33 100644 (file)
@@ -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(() => {}, {