From c44d99121262d4e9c8f2fe17e91a6a847c8c8e7a Mon Sep 17 00:00:00 2001 From: Vladimir Date: Wed, 17 May 2023 10:27:32 +0200 Subject: [PATCH] fix: check error type before modifying it (#3385) --- packages/vitest/src/node/state.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/vitest/src/node/state.ts b/packages/vitest/src/node/state.ts index 2837f95ba022..bbfcb13a2087 100644 --- a/packages/vitest/src/node/state.ts +++ b/packages/vitest/src/node/state.ts @@ -1,5 +1,5 @@ import { relative } from 'pathe' -import type { ErrorWithDiff, File, Task, TaskResultPack, UserConsoleLog } from '../types' +import type { File, Task, TaskResultPack, UserConsoleLog } from '../types' // can't import actual functions from utils, because it's incompatible with @vitest/browsers import type { AggregateError as AggregateErrorPonyfill } from '../utils' @@ -30,9 +30,13 @@ export class StateManager { catchError(err: unknown, type: string): void { if (isAggregateError(err)) - return err.errors.forEach(error => this.catchError(error, type)); + return err.errors.forEach(error => this.catchError(error, type)) + + if (err === Object(err)) + (err as Record).type = type + else + err = { type, message: err } - (err as ErrorWithDiff).type = type this.errorsSet.add(err) }