From 3dc5a1ad98d9ca7e9af04eb32e605c3870ff2576 Mon Sep 17 00:00:00 2001 From: Evan You Date: Wed, 17 Jul 2024 14:29:54 +0800 Subject: [PATCH] test: test case for #11286 --- .../__tests__/errorHandling.spec.ts | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/packages/runtime-core/__tests__/errorHandling.spec.ts b/packages/runtime-core/__tests__/errorHandling.spec.ts index cf148bd2f..4cf4ffe31 100644 --- a/packages/runtime-core/__tests__/errorHandling.spec.ts +++ b/packages/runtime-core/__tests__/errorHandling.spec.ts @@ -1,5 +1,6 @@ import { type VNode, + computed, createApp, defineComponent, h, @@ -639,5 +640,35 @@ describe('error handling', () => { ) }) + // #11286 + test('handle error in computed', async () => { + const err = new Error() + const handler = vi.fn() + + const count = ref(1) + const x = computed(() => { + if (count.value === 2) throw err + return count.value + 1 + }) + + const app = createApp({ + setup() { + return () => x.value + }, + }) + + app.config.errorHandler = handler + app.mount(nodeOps.createElement('div')) + + count.value = 2 + + await nextTick() + expect(handler).toHaveBeenCalledWith( + err, + {}, + ErrorTypeStrings[ErrorCodes.COMPONENT_UPDATE], + ) + }) + // native event handler handling should be tested in respective renderers })