From 97535561d0a2f5bd2f75067117bfb2a0a87e0e5c Mon Sep 17 00:00:00 2001 From: Vladimir Sheremet Date: Thu, 9 Jun 2022 10:13:14 +0300 Subject: [PATCH 1/2] fix: don't fail when there is no source file, defined in source map --- packages/vitest/src/node/error.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/vitest/src/node/error.ts b/packages/vitest/src/node/error.ts index 795e6da4fbc8..ebfe55d10e23 100644 --- a/packages/vitest/src/node/error.ts +++ b/packages/vitest/src/node/error.ts @@ -50,8 +50,13 @@ export async function printError(error: unknown, ctx: Vitest, options: PrintErro printErrorMessage(e, ctx.console) printStack(ctx, stacks, nearest, errorProperties, (s, pos) => { if (showCodeFrame && s === nearest && nearest) { - const sourceCode = readFileSync(fileFromParsedStack(nearest), 'utf-8') - ctx.log(c.yellow(generateCodeFrame(sourceCode, 4, pos))) + const file = fileFromParsedStack(nearest) + // could point to non-existing original file + // for example, when there is a source map file, but no source in node_modules + if (existsSync(file)) { + const sourceCode = readFileSync(fileFromParsedStack(nearest), 'utf-8') + ctx.log(c.yellow(generateCodeFrame(sourceCode, 4, pos))) + } } }) From 0401c5d33f704b07e9ca2633acbcb9446a489e5c Mon Sep 17 00:00:00 2001 From: Vladimir Sheremet Date: Thu, 9 Jun 2022 11:26:49 +0300 Subject: [PATCH 2/2] chore: cleanup --- packages/vitest/src/node/error.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vitest/src/node/error.ts b/packages/vitest/src/node/error.ts index ebfe55d10e23..74c9a0f298ed 100644 --- a/packages/vitest/src/node/error.ts +++ b/packages/vitest/src/node/error.ts @@ -54,7 +54,7 @@ export async function printError(error: unknown, ctx: Vitest, options: PrintErro // could point to non-existing original file // for example, when there is a source map file, but no source in node_modules if (existsSync(file)) { - const sourceCode = readFileSync(fileFromParsedStack(nearest), 'utf-8') + const sourceCode = readFileSync(file, 'utf-8') ctx.log(c.yellow(generateCodeFrame(sourceCode, 4, pos))) } }