From 267fdbe2eaffd2c73b62d98c94c8cad6313d889d Mon Sep 17 00:00:00 2001 From: Julian Dax Date: Wed, 15 Feb 2023 10:49:14 +0100 Subject: [PATCH] feat(jest-message-util): improve detection of error causes (#13912) --- CHANGELOG.md | 2 +- packages/jest-message-util/src/index.ts | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 46b486654d67..5a682d66ec6f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ### Features -- `[jest-message-util]` Add support for [error causes](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/cause) +- `[jest-message-util]` Add support for [error causes](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/cause) ([#13868](https://github.com/facebook/jest/pull/13868) & [#13912](https://github.com/facebook/jest/pull/13912)) ### Fixes diff --git a/packages/jest-message-util/src/index.ts b/packages/jest-message-util/src/index.ts index d4e9059460ee..bf03d9d547d4 100644 --- a/packages/jest-message-util/src/index.ts +++ b/packages/jest-message-util/src/index.ts @@ -152,7 +152,15 @@ export const formatExecError = ( const prefix = '\n\nCause:\n'; if (typeof error.cause === 'string' || typeof error.cause === 'number') { cause += `${prefix}${error.cause}`; - } else if (types.isNativeError(error.cause)) { + } else if ( + types.isNativeError(error.cause) || + error.cause instanceof Error + ) { + /* `isNativeError` is used, because the error might come from another realm. + `instanceof Error` is used because `isNativeError` does return `false` for some + things that are `instanceof Error` like the errors provided in + [verror](https://www.npmjs.com/package/verror) or [axios](https://axios-http.com). + */ const formatted = formatExecError( error.cause, config,