Bläddra i källkod

test(watch): add same value skipping trigger test

Evan You 5 år sedan
förälder
incheckning
223f180529
1 ändrade filer med 15 tillägg och 0 borttagningar
  1. 15 0
      packages/runtime-core/__tests__/apiWatch.spec.ts

+ 15 - 0
packages/runtime-core/__tests__/apiWatch.spec.ts

@@ -77,6 +77,21 @@ describe('api: watch', () => {
     expect(spy).toBeCalledWith([1], expect.anything(), expect.anything())
   })
 
+  it('should not fire if watched getter result did not change', async () => {
+    const spy = jest.fn()
+    const n = ref(0)
+    watch(() => n.value % 2, spy)
+
+    n.value++
+    await nextTick()
+    expect(spy).toBeCalledTimes(1)
+
+    n.value += 2
+    await nextTick()
+    // should not be called again because getter result did not change
+    expect(spy).toBeCalledTimes(1)
+  })
+
   it('watching single source: computed ref', async () => {
     const count = ref(0)
     const plus = computed(() => count.value + 1)