diff --git a/packages/runtime-core/__tests__/helpers/withMemo.spec.ts b/packages/runtime-core/__tests__/helpers/withMemo.spec.ts index 32f89b1d8..cc447327e 100644 --- a/packages/runtime-core/__tests__/helpers/withMemo.spec.ts +++ b/packages/runtime-core/__tests__/helpers/withMemo.spec.ts @@ -204,6 +204,32 @@ describe('v-memo', () => { ) }) + // #12708 + test('v-memo should work correctly when toggling v-if with v-for inside', async () => { + const [el, vm] = mount({ + template: ` + {{count}} + `, + data: () => ({ + show: true, + count: 0, + }), + }) + expect(el.innerHTML).toBe(`0`) + + vm.show = false + await nextTick() + expect(el.innerHTML).toBe(``) + + vm.show = true + await nextTick() + expect(el.innerHTML).toBe(`0`) + + vm.count++ + await nextTick() + expect(el.innerHTML).toBe(`1`) + }) + test('on v-for /w constant expression ', async () => { const [el, vm] = mount({ template: `