From 9e2e5b9e984630ca32d287b6630dab1f0e705582 Mon Sep 17 00:00:00 2001 From: Nathan Date: Sat, 25 Mar 2023 16:14:24 -0400 Subject: [PATCH] fix: avoid call stack recursion with large error Fixes #3060 --- 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 b447c8e881db..30d7621a1e24 100644 --- a/packages/vitest/src/node/error.ts +++ b/packages/vitest/src/node/error.ts @@ -190,7 +190,13 @@ export function displayDiff(actual: string, expected: 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(