From 02196f9d95b080dcd5d006ed918f9af3726f446e Mon Sep 17 00:00:00 2001 From: Nathan <37555055+nathanmmiller@users.noreply.github.com> Date: Thu, 15 Jun 2023 04:12:05 -0400 Subject: [PATCH] fix: avoid call stack recursion with large error (fix: #3060) (#3078) Co-authored-by: Vladimir --- packages/vitest/src/node/error.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/vitest/src/node/error.ts b/packages/vitest/src/node/error.ts index 9d42c05dc475..db86d82cdcb8 100644 --- a/packages/vitest/src/node/error.ts +++ b/packages/vitest/src/node/error.ts @@ -190,7 +190,13 @@ export function displayDiff(diff: string, console: Console) { function printErrorMessage(error: ErrorWithDiff, logger: Logger) { const errorName = error.name || error.nameStr || 'Unknown Error' - logger.error(c.red(`${c.bold(errorName)}: ${error.message}`)) + if (error.message.length > 5000) { + // Protect against infinite stack trace in picocolors + logger.error(`${c.red(c.bold(errorName))}: ${error.message}`) + } + else { + logger.error(c.red(`${c.bold(errorName)}: ${error.message}`)) + } } function printStack(