]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
test(watch): add same value skipping trigger test
authorEvan You <yyx990803@gmail.com>
Fri, 14 Aug 2020 21:35:49 +0000 (17:35 -0400)
committerEvan You <yyx990803@gmail.com>
Fri, 14 Aug 2020 21:35:49 +0000 (17:35 -0400)
packages/runtime-core/__tests__/apiWatch.spec.ts

index edeedf6c2af5996c74122162779a90a32fc58d5a..76812390f82f2c06724aca17a4df8c7e259d1e09 100644 (file)
@@ -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)