From 527bb3781ff99ecdec43f3cf0e0407b07537c0b6 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Fri, 20 May 2022 11:50:17 +0300 Subject: [PATCH] fix: don't crach on DOMError (#1341) --- packages/vitest/src/runtime/error.ts | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/vitest/src/runtime/error.ts b/packages/vitest/src/runtime/error.ts index 768e00cb6c43..2d7deeb7fe51 100644 --- a/packages/vitest/src/runtime/error.ts +++ b/packages/vitest/src/runtime/error.ts @@ -76,17 +76,21 @@ export function processError(err: any) { if (typeof err.actual !== 'string') err.actual = stringify(err.actual) - if (typeof err.message === 'string') - err.message = normalizeErrorMessage(err.message) + // some Error implementations don't allow rewriting message + try { + if (typeof err.message === 'string') + err.message = normalizeErrorMessage(err.message) - if (typeof err.cause === 'object' && err.cause.message === 'string') - err.cause.message = normalizeErrorMessage(err.cause.message) + if (typeof err.cause === 'object' && err.cause.message === 'string') + err.cause.message = normalizeErrorMessage(err.cause.message) + } + catch {} try { return serializeError(err) } catch (e: any) { - return serializeError(new Error(`Failed to fully serialize error: ${e?.message}.\nInner error message: ${err?.message}`)) + return serializeError(new Error(`Failed to fully serialize error: ${e?.message}\nInner error message: ${err?.message}`)) } }