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 })