Skip to content

Commit 2deb70a

Browse files
authoredJun 2, 2023
fix(runner): ensure Vitest is deduped (#3489)
1 parent 8a11e63 commit 2deb70a

File tree

7 files changed

+24
-29
lines changed

7 files changed

+24
-29
lines changed
 

‎packages/runner/src/run.ts

-3
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import { collectTests } from './collect'
88
import { processError } from './utils/error'
99
import { setCurrentTest } from './test-state'
1010
import { hasFailed, hasTests } from './utils/tasks'
11-
import { markVersion } from './version'
1211

1312
const now = Date.now
1413

@@ -358,8 +357,6 @@ export async function runFiles(files: File[], runner: VitestRunner) {
358357
}
359358

360359
export async function startTests(paths: string[], runner: VitestRunner) {
361-
markVersion()
362-
363360
await runner.onBeforeCollect?.(paths)
364361

365362
const files = await collectTests(paths, runner)

‎packages/runner/src/suite.ts

-3
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,11 @@ import type { VitestRunner } from './types/runner'
44
import { createChainable } from './utils/chain'
55
import { collectTask, collectorContext, createTestContext, runWithSuite, withTimeout } from './context'
66
import { getHooks, setFn, setHooks } from './map'
7-
import { checkVersion } from './version'
87

98
// apis
109
export const suite = createSuite()
1110
export const test = createTest(
1211
function (name: string, fn?: TestFunction, options?: number | TestOptions) {
13-
checkVersion()
1412
getCurrentSuite().test.fn.call(this, name, fn, options)
1513
},
1614
)
@@ -192,7 +190,6 @@ function createSuiteCollector(name: string, factory: SuiteFactory = () => { }, m
192190

193191
function createSuite() {
194192
function suiteFn(this: Record<string, boolean | undefined>, name: string, factory?: SuiteFactory, options?: number | TestOptions) {
195-
checkVersion()
196193
const mode: RunMode = this.only ? 'only' : this.skip ? 'skip' : this.todo ? 'todo' : 'run'
197194
const currentSuite = getCurrentSuite()
198195

‎packages/runner/src/version.ts

-22
This file was deleted.

‎packages/vitest/src/node/plugins/index.ts

+2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { CSSEnablerPlugin } from './cssEnabler'
1313
import { CoverageTransform } from './coverageTransform'
1414
import { MocksPlugin } from './mocks'
1515
import { resolveOptimizerConfig } from './utils'
16+
import { VitestResolver } from './vitestResolver'
1617

1718
export async function VitestPlugin(options: UserConfig = {}, ctx = new Vitest('test')): Promise<VitePlugin[]> {
1819
const userConfig = deepMerge({}, options) as UserConfig
@@ -208,6 +209,7 @@ export async function VitestPlugin(options: UserConfig = {}, ctx = new Vitest('t
208209
? await UIPlugin()
209210
: null,
210211
MocksPlugin(),
212+
VitestResolver(ctx),
211213
]
212214
.filter(notNullish)
213215
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import type { Plugin } from 'vite'
2+
import { join } from 'pathe'
3+
import type { Vitest } from '../core'
4+
5+
export function VitestResolver(ctx: Vitest): Plugin {
6+
return {
7+
name: 'vitest:resolve-root',
8+
enforce: 'pre',
9+
async resolveId(id) {
10+
if (id === 'vitest' || id.startsWith('@vitest/')) {
11+
return this.resolve(
12+
id,
13+
join(ctx.config.root, 'index.html'),
14+
{ skipSelf: true },
15+
)
16+
}
17+
},
18+
}
19+
}

‎packages/vitest/src/node/plugins/workspace.ts

+2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { EnvReplacerPlugin } from './envReplacer'
1111
import { GlobalSetupPlugin } from './globalSetup'
1212
import { MocksPlugin } from './mocks'
1313
import { resolveOptimizerConfig } from './utils'
14+
import { VitestResolver } from './vitestResolver'
1415

1516
interface WorkspaceOptions extends UserWorkspaceConfig {
1617
root?: string
@@ -150,5 +151,6 @@ export function WorkspaceVitestPlugin(project: WorkspaceProject, options: Worksp
150151
CoverageTransform(project.ctx),
151152
GlobalSetupPlugin(project, project.ctx.logger),
152153
MocksPlugin(),
154+
VitestResolver(project.ctx),
153155
]
154156
}

‎packages/vitest/src/runtime/mocker.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import { getColors, getType } from '@vitest/utils'
44
import { isNodeBuiltin } from 'vite-node/utils'
55
import { getWorkerState } from '../utils/global'
66
import { getAllMockableProperties } from '../utils/base'
7-
import { spyOn } from '../integrations/spy'
87
import type { MockFactory, PendingSuiteMock } from '../types/mocker'
8+
import { spyOn } from '../integrations/spy'
99
import type { VitestExecutor } from './execute'
1010

1111
const filterPublicKeys = ['__esModule', Symbol.asyncIterator, Symbol.hasInstance, Symbol.isConcatSpreadable, Symbol.iterator, Symbol.match, Symbol.matchAll, Symbol.replace, Symbol.search, Symbol.split, Symbol.species, Symbol.toPrimitive, Symbol.toStringTag, Symbol.unscopables]

0 commit comments

Comments
 (0)
Please sign in to comment.