diff --git a/packages/jest-circus/src/index.ts b/packages/jest-circus/src/index.ts index 43e039ceac7f..760c4a2832ce 100644 --- a/packages/jest-circus/src/index.ts +++ b/packages/jest-circus/src/index.ts @@ -186,9 +186,9 @@ const test: Global.It = (() => { ) => void, timeout?: number, failing?: boolean, - error?: Error, + asyncError?: Error, ) => { - const asyncError = error || new ErrorWithStack(undefined, testFn); + asyncError = asyncError || new ErrorWithStack(undefined, testFn); try { testName = convertDescriptorToString(testName); diff --git a/packages/jest-console/src/BufferedConsole.ts b/packages/jest-console/src/BufferedConsole.ts index a6e7288ef513..930c680e9261 100644 --- a/packages/jest-console/src/BufferedConsole.ts +++ b/packages/jest-console/src/BufferedConsole.ts @@ -79,6 +79,7 @@ export default class BufferedConsole extends Console { if (!(error instanceof AssertionError)) { throw error; } + // https://github.com/facebook/jest/pull/13422#issuecomment-1273396392 this._log('assert', error.toString().replace(/:\n\n.*\n/gs, '')); } } diff --git a/packages/jest-console/src/CustomConsole.ts b/packages/jest-console/src/CustomConsole.ts index 118289b7fc1d..eb34ffc3679f 100644 --- a/packages/jest-console/src/CustomConsole.ts +++ b/packages/jest-console/src/CustomConsole.ts @@ -56,6 +56,7 @@ export default class CustomConsole extends Console { if (!(error instanceof AssertionError)) { throw error; } + // https://github.com/facebook/jest/pull/13422#issuecomment-1273396392 this._logError('assert', error.toString().replace(/:\n\n.*\n/gs, '')); } } diff --git a/packages/jest-each/src/bind.ts b/packages/jest-each/src/bind.ts index cdeb79042eb2..8a1f81b4ef0e 100644 --- a/packages/jest-each/src/bind.ts +++ b/packages/jest-each/src/bind.ts @@ -67,8 +67,13 @@ export default function bind( ); } catch (e: any) { const err = new Error(e.message); - err.stack = error.stack?.replace(/^Error: /s, e.message); - err.name = ''; + + // @ts-expect-error: CIRCUS + if (typeof global.it !== 'undefined') { + err.stack = error.stack?.replace(/^Error: /s, e.message); + } else { + err.stack = error.stack; + } return cb(title, () => { throw err;