From 223f18052944c57f449cb29ec6ea7c8c796c6e3d Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 14 Aug 2020 17:35:49 -0400 Subject: [PATCH] test(watch): add same value skipping trigger test --- packages/runtime-core/__tests__/apiWatch.spec.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/runtime-core/__tests__/apiWatch.spec.ts b/packages/runtime-core/__tests__/apiWatch.spec.ts index edeedf6c2..76812390f 100644 --- a/packages/runtime-core/__tests__/apiWatch.spec.ts +++ b/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)