From f9353f4fc476647feb4c6ea5277843c5c6f8463e Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Thu, 10 Feb 2022 10:52:06 +0800 Subject: [PATCH] fix: reporters resolving, close #721 --- packages/vitest/src/constants.ts | 2 +- packages/vitest/src/node/config.ts | 8 ++++++++ packages/vitest/src/node/core.ts | 8 ++------ packages/vitest/src/types/config.ts | 4 +++- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/packages/vitest/src/constants.ts b/packages/vitest/src/constants.ts index 8c834e5e53dd..3d02f152272b 100644 --- a/packages/vitest/src/constants.ts +++ b/packages/vitest/src/constants.ts @@ -49,7 +49,7 @@ export const configDefaults: UserConfig = Object.freeze({ isolate: true, watchIgnore: [/\/node_modules\//, /\/dist\//], update: false, - reporters: ['default'], + reporters: [], silent: false, api: false, ui: false, diff --git a/packages/vitest/src/node/config.ts b/packages/vitest/src/node/config.ts index 5d119efb580a..4eb5bed6ef96 100644 --- a/packages/vitest/src/node/config.ts +++ b/packages/vitest/src/node/config.ts @@ -105,5 +105,13 @@ export function resolveConfig( if (options.related) resolved.related = toArray(options.related).map(file => resolve(resolved.root, file)) + resolved.reporters = Array.from(new Set([ + ...toArray(resolved.reporters), + // @ts-expect-error from CLI + ...toArray(resolved.reporter), + ])).filter(Boolean) + if (!resolved.reporters.length) + resolved.reporters.push('default') + return resolved } diff --git a/packages/vitest/src/node/core.ts b/packages/vitest/src/node/core.ts index 10e70df44afc..856b6f9bfb16 100644 --- a/packages/vitest/src/node/core.ts +++ b/packages/vitest/src/node/core.ts @@ -8,7 +8,7 @@ import type { ArgumentsType, Reporter, ResolvedConfig, UserConfig } from '../typ import { SnapshotManager } from '../integrations/snapshot/manager' import { deepMerge, hasFailed, noop, slash, toArray } from '../utils' import { cleanCoverage, reportCoverage } from '../integrations/coverage' -import { DefaultReporter, ReportersMap } from './reporters' +import { ReportersMap } from './reporters' import { createPool } from './pool' import type { WorkerPool } from './pool' import { StateManager } from './state' @@ -60,8 +60,7 @@ export class Vitest { this.config = resolved this.state = new StateManager() this.snapshot = new SnapshotManager(resolved) - // @ts-expect-error cli type - this.reporters = toArray(resolved.reporters || resolved.reporter) + this.reporters = resolved.reporters .map((i) => { if (typeof i === 'string') { const Reporter = ReportersMap[i] @@ -72,9 +71,6 @@ export class Vitest { return i }) - if (!this.reporters.length) - this.reporters.push(new DefaultReporter()) - if (this.config.watch) this.registerWatcher() diff --git a/packages/vitest/src/types/config.ts b/packages/vitest/src/types/config.ts index a7c4274a32ae..dbf66f917e0f 100644 --- a/packages/vitest/src/types/config.ts +++ b/packages/vitest/src/types/config.ts @@ -316,7 +316,7 @@ export interface UserConfig extends InlineConfig { related?: string[] | string } -export interface ResolvedConfig extends Omit, 'config' | 'filters' | 'coverage' | 'testNamePattern' | 'related' | 'api'> { +export interface ResolvedConfig extends Omit, 'config' | 'filters' | 'coverage' | 'testNamePattern' | 'related' | 'api' | 'reporters'> { base?: string config?: string @@ -327,5 +327,7 @@ export interface ResolvedConfig extends Omit, 'config' | 'f coverage: ResolvedC8Options snapshotOptions: SnapshotStateOptions + reporters: (Reporter | BuiltinReporters)[] + api?: ApiConfig }