From f0605a8e8a9f8616b88db2ffbe86f9acc2e94b2c Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Tue, 26 Jan 2021 14:38:33 +0800 Subject: [PATCH] test: add failed test for #498 --- test/v3/runtime-core/apiWatch.spec.ts | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/test/v3/runtime-core/apiWatch.spec.ts b/test/v3/runtime-core/apiWatch.spec.ts index b98d95b3..3e3510e9 100644 --- a/test/v3/runtime-core/apiWatch.spec.ts +++ b/test/v3/runtime-core/apiWatch.spec.ts @@ -531,4 +531,30 @@ describe('api: watch', () => { expect(data2.value).toMatchObject([1]) }) + + // #498 + it('watchEffect should not lead to infinite loop when accessing', async () => { + let dummy = 0 + + const state = reactive({ + data: [], + watchVar: 123, + }) + + watchEffect(() => { + // accessing + state.watchVar + // setting + state.data = [] + dummy += 1 + }) + + expect(dummy).toBe(1) + + state.data = [] + + await nextTick() + + expect(dummy).toBe(2) + }) })