Kaynağa Gözat

test(effect): verify cleanupEffect clears multiple dependencies (#9503)

close #5541
Tycho 1 yıl önce
ebeveyn
işleme
d04417da41
1 değiştirilmiş dosya ile 25 ekleme ve 0 silme
  1. 25 0
      packages/reactivity/__tests__/effect.spec.ts

+ 25 - 0
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(() => {}, {