diff --git a/packages/vitest/src/api/setup.ts b/packages/vitest/src/api/setup.ts index d4c6408df886..a385164b6ce2 100644 --- a/packages/vitest/src/api/setup.ts +++ b/packages/vitest/src/api/setup.ts @@ -1,4 +1,5 @@ import { promises as fs } from 'node:fs' + import type { BirpcReturn } from 'birpc' import { createBirpc } from 'birpc' import { parse, stringify } from 'flatted' @@ -8,6 +9,7 @@ import { API_PATH } from '../constants' import type { Vitest } from '../node' import type { File, ModuleGraphData, Reporter, TaskResultPack, UserConsoleLog } from '../types' import { getModuleGraph } from '../utils' +import { parseStacktrace } from '../utils/source-map' import type { TransformResultWithSource, WebSocketEvents, WebSocketHandlers } from './types' export function setup(ctx: Vitest) { @@ -121,6 +123,11 @@ class WebSocketReporter implements Reporter { if (this.clients.size === 0) return + packs.forEach(([, result]) => { + if (result?.error) + result.error.stacks = parseStacktrace(result.error) + }) + this.clients.forEach((client) => { client.onTaskUpdate?.(packs) })