From 4cee6711883ef9777799bf85f6bc91503921f01d Mon Sep 17 00:00:00 2001 From: Dunqing Date: Mon, 16 Oct 2023 03:20:22 -0500 Subject: [PATCH] fix(runner): removes deprecated `error` option from TaskResult (#4313) BREAKING CHANGE: `error` property is no longer available --- packages/runner/src/collect.ts | 1 - packages/runner/src/run.ts | 7 +------ packages/runner/src/types/tasks.ts | 4 ---- packages/runner/src/utils/collect.ts | 1 - packages/vitest/src/api/setup.ts | 3 --- packages/vitest/src/node/reporters/junit.ts | 2 +- test/reporters/src/data-for-junit.ts | 1 - test/reporters/src/data.ts | 1 - .../tests/__snapshots__/html.test.ts.snap | 19 ------------------- test/reporters/tests/html.test.ts | 5 +---- 10 files changed, 3 insertions(+), 41 deletions(-) diff --git a/packages/runner/src/collect.ts b/packages/runner/src/collect.ts index 807ca6fab..a32501b67 100644 --- a/packages/runner/src/collect.ts +++ b/packages/runner/src/collect.ts @@ -65,7 +65,6 @@ export async function collectTests(paths: string[], runner: VitestRunner): Promi const error = processError(e) file.result = { state: 'fail', - error, errors: [error], } } diff --git a/packages/runner/src/run.ts b/packages/runner/src/run.ts index daf557658..b33ed3153 100644 --- a/packages/runner/src/run.ts +++ b/packages/runner/src/run.ts @@ -217,12 +217,10 @@ export async function runTest(test: Test | Custom, runner: VitestRunner) { if (test.result.state === 'pass') { const error = processError(new Error('Expect test to fail')) test.result.state = 'fail' - test.result.error = error test.result.errors = [error] } else { test.result.state = 'pass' - test.result.error = undefined test.result.errors = undefined } } @@ -248,7 +246,6 @@ function failTask(result: TaskResult, err: unknown, diffOptions?: DiffOptions) { : [err] for (const e of errors) { const error = processError(e, diffOptions) - result.error ??= error result.errors ??= [] result.errors.push(error) } @@ -333,9 +330,8 @@ export async function runSuite(suite: Suite, runner: VitestRunner) { if (suite.mode === 'run') { if (!hasTests(suite)) { suite.result.state = 'fail' - if (!suite.result.error) { + if (!suite.result.errors?.length) { const error = processError(new Error(`No test found in suite ${suite.name}`)) - suite.result.error = error suite.result.errors = [error] } } @@ -370,7 +366,6 @@ export async function runFiles(files: File[], runner: VitestRunner) { const error = processError(new Error(`No test suite found in file ${file.filepath}`)) file.result = { state: 'fail', - error, errors: [error], } } diff --git a/packages/runner/src/types/tasks.ts b/packages/runner/src/types/tasks.ts index b8f5ba6f7..c893067de 100644 --- a/packages/runner/src/types/tasks.ts +++ b/packages/runner/src/types/tasks.ts @@ -39,10 +39,6 @@ export interface TaskResult { duration?: number startTime?: number heap?: number - /** - * @deprecated Use "errors" instead - */ - error?: ErrorWithDiff errors?: ErrorWithDiff[] htmlError?: string hooks?: Partial> diff --git a/packages/runner/src/utils/collect.ts b/packages/runner/src/utils/collect.ts index b163bae7f..7318fdf02 100644 --- a/packages/runner/src/utils/collect.ts +++ b/packages/runner/src/utils/collect.ts @@ -69,7 +69,6 @@ function checkAllowOnly(task: TaskBase, allowOnly?: boolean) { const error = processError(new Error('[Vitest] Unexpected .only modifier. Remove it or pass --allowOnly argument to bypass this error')) task.result = { state: 'fail', - error, errors: [error], } } diff --git a/packages/vitest/src/api/setup.ts b/packages/vitest/src/api/setup.ts index d1ba82c42..39a900b98 100644 --- a/packages/vitest/src/api/setup.ts +++ b/packages/vitest/src/api/setup.ts @@ -179,9 +179,6 @@ class WebSocketReporter implements Reporter { getSourceMap: file => project.getBrowserSourceMapModuleById(file), } - // TODO remove after "error" deprecation is removed - if (result?.error && !isPrimitive(result.error)) - result.error.stacks = parseErrorStacktrace(result.error, parserOptions) result?.errors?.forEach((error) => { if (!isPrimitive(error)) error.stacks = parseErrorStacktrace(error, parserOptions) diff --git a/packages/vitest/src/node/reporters/junit.ts b/packages/vitest/src/node/reporters/junit.ts index 68e6168b5..1a34c7b34 100644 --- a/packages/vitest/src/node/reporters/junit.ts +++ b/packages/vitest/src/node/reporters/junit.ts @@ -179,7 +179,7 @@ export class JUnitReporter implements Reporter { await this.logger.log('') if (task.result?.state === 'fail') { - const errors = task.result.errors?.length ? task.result.errors : [task.result.error] + const errors = task.result.errors || [] for (const error of errors) { await this.writeElement('failure', { message: error?.message, diff --git a/test/reporters/src/data-for-junit.ts b/test/reporters/src/data-for-junit.ts index fa0a7f564..26a36f495 100644 --- a/test/reporters/src/data-for-junit.ts +++ b/test/reporters/src/data-for-junit.ts @@ -45,7 +45,6 @@ function createSuiteHavingFailedTestWithXmlInError(): File[] { file, result: { state: 'fail', - error: errorWithXml, errors: [errorWithXml], duration: 2.123123123, }, diff --git a/test/reporters/src/data.ts b/test/reporters/src/data.ts index e51c56c13..eff8c586e 100644 --- a/test/reporters/src/data.ts +++ b/test/reporters/src/data.ts @@ -66,7 +66,6 @@ const innerTasks: Task[] = [ file, result: { state: 'fail', - error, errors: [error], duration: 1.4422860145568848, }, diff --git a/test/reporters/tests/__snapshots__/html.test.ts.snap b/test/reporters/tests/__snapshots__/html.test.ts.snap index 7541b47d6..a702e4507 100644 --- a/test/reporters/tests/__snapshots__/html.test.ts.snap +++ b/test/reporters/tests/__snapshots__/html.test.ts.snap @@ -42,25 +42,6 @@ exports[`html reporter > resolves to "failing" status for test file "json-fail" "name": "should fail", "result": { "duration": 0, - "error": { - "actual": "2", - "constructor": "Function", - "diff": "- Expected -+ Received - -- 1 -+ 2", - "expected": "1", - "message": "expected 2 to deeply equal 1", - "name": "AssertionError", - "nameStr": "AssertionError", - "operator": "strictEqual", - "showDiff": true, - "stack": "AssertionError: expected 2 to deeply equal 1", - "stackStr": "AssertionError: expected 2 to deeply equal 1", - "toJSON": "Function", - "toString": "Function", - }, "errors": [ { "actual": "2", diff --git a/test/reporters/tests/html.test.ts b/test/reporters/tests/html.test.ts index 90bcb74b5..6a7269b4d 100644 --- a/test/reporters/tests/html.test.ts +++ b/test/reporters/tests/html.test.ts @@ -33,7 +33,7 @@ describe('html reporter', async () => { task.id = 0 task.result.duration = 0 task.result.startTime = 0 - expect(task.result.error).not.toBeDefined() + expect(task.result.errors).not.toBeDefined() expect(task.result.logs).not.toBeDefined() expect(resultJson).toMatchSnapshot(`tests are ${expected}`) expect(indexHtml).toMatch('window.METADATA_PATH="html.meta.json.gz"') @@ -61,11 +61,8 @@ describe('html reporter', async () => { task.id = 0 task.result.duration = 0 task.result.startTime = 0 - expect(task.result.error).toBeDefined() expect(task.result.errors).toBeDefined() - task.result.error.stack = task.result.error.stack.split('\n')[0] task.result.errors[0].stack = task.result.errors[0].stack.split('\n')[0] - task.result.error.stackStr = task.result.error.stackStr.split('\n')[0] task.result.errors[0].stackStr = task.result.errors[0].stackStr.split('\n')[0] expect(task.logs).toBeDefined() expect(task.logs).toHaveLength(1) -- 2.51.2