diff --git a/packages/vitest/src/node/core.ts b/packages/vitest/src/node/core.ts index 3d6936dba44e..afc9a8a1fa0b 100644 --- a/packages/vitest/src/node/core.ts +++ b/packages/vitest/src/node/core.ts @@ -2,7 +2,6 @@ import type { CancelReason, File } from '@vitest/runner' import type { Awaitable } from '@vitest/utils' import type { Writable } from 'node:stream' import type { ViteDevServer } from 'vite' -import type { defineWorkspace } from 'vitest/config' import type { SerializedCoverageConfig } from '../runtime/config' import type { ArgumentsType, ProvidedContext, UserConsoleLog } from '../types/general' import type { CliOptions } from './cli/cli-api' @@ -481,7 +480,7 @@ export class Vitest { ) const workspaceModule = await this.import<{ - default: ReturnType + default: TestProjectConfiguration[] }>(workspaceConfigPath) if (!workspaceModule.default || !Array.isArray(workspaceModule.default)) { diff --git a/packages/vitest/src/node/types/config.ts b/packages/vitest/src/node/types/config.ts index d1f9f9d6d1d4..d6f42188489c 100644 --- a/packages/vitest/src/node/types/config.ts +++ b/packages/vitest/src/node/types/config.ts @@ -1161,6 +1161,7 @@ export interface UserWorkspaceConfig extends ViteUserConfig { test?: ProjectConfig } +// TODO: remove types when "workspace" support is removed export type UserProjectConfigFn = ( env: ConfigEnv ) => UserWorkspaceConfig | Promise @@ -1183,6 +1184,3 @@ export type TestProjectConfiguration = | TestProjectInlineConfiguration | Promise | UserProjectConfigFn - -/** @deprecated use `TestProjectConfiguration` instead */ -export type WorkspaceProjectConfiguration = TestProjectConfiguration diff --git a/packages/vitest/src/public/config.ts b/packages/vitest/src/public/config.ts index fe2d0191e0a0..e24ef6b419e9 100644 --- a/packages/vitest/src/public/config.ts +++ b/packages/vitest/src/public/config.ts @@ -3,10 +3,10 @@ import type { ConfigEnv, UserConfig as ViteUserConfig } from 'vite' import type { TestProjectConfiguration, TestProjectInlineConfiguration, + UserConfig, UserProjectConfigExport, UserProjectConfigFn, UserWorkspaceConfig, - WorkspaceProjectConfiguration, } from '../node/types/config' import '../node/types/vite' @@ -23,38 +23,33 @@ export type { WatcherTriggerPattern } from '../node/watcher' export { mergeConfig } from 'vite' export type { Plugin } from 'vite' -export type { ConfigEnv, ViteUserConfig } -/** - * @deprecated Use `ViteUserConfig` instead - */ -export type UserConfig = ViteUserConfig +export type { ConfigEnv, UserConfig as TestUserConfig, ViteUserConfig } export type { TestProjectConfiguration, TestProjectInlineConfiguration, UserProjectConfigExport, UserProjectConfigFn, UserWorkspaceConfig, - WorkspaceProjectConfiguration, } -export type UserConfigFnObject = (env: ConfigEnv) => ViteUserConfig -export type UserConfigFnPromise = (env: ConfigEnv) => Promise -export type UserConfigFn = ( +export type ViteUserConfigFnObject = (env: ConfigEnv) => ViteUserConfig +export type ViteUserConfigFnPromise = (env: ConfigEnv) => Promise +export type ViteUserConfigFn = ( env: ConfigEnv ) => ViteUserConfig | Promise -export type UserConfigExport = +export type ViteUserConfigExport = | ViteUserConfig | Promise - | UserConfigFnObject - | UserConfigFnPromise - | UserConfigFn + | ViteUserConfigFnObject + | ViteUserConfigFnPromise + | ViteUserConfigFn export function defineConfig(config: ViteUserConfig): ViteUserConfig export function defineConfig( config: Promise ): Promise -export function defineConfig(config: UserConfigFnObject): UserConfigFnObject -export function defineConfig(config: UserConfigExport): UserConfigExport -export function defineConfig(config: UserConfigExport): UserConfigExport { +export function defineConfig(config: ViteUserConfigFnObject): ViteUserConfigFnObject +export function defineConfig(config: ViteUserConfigExport): ViteUserConfigExport +export function defineConfig(config: ViteUserConfigExport): ViteUserConfigExport { return config } @@ -65,10 +60,3 @@ export function defineProject(config: UserProjectConfigExport): UserProjectConfi export function defineProject(config: UserProjectConfigExport): UserProjectConfigExport { return config } - -/** - * @deprecated use the `projects` field in the root config instead - */ -export function defineWorkspace(config: TestProjectConfiguration[]): TestProjectConfiguration[] { - return config -} diff --git a/test/cli/fixtures/browser-multiple/vitest.config.ts b/test/cli/fixtures/browser-multiple/vitest.config.ts index e3e49a772c50..3703112fe1f9 100644 --- a/test/cli/fixtures/browser-multiple/vitest.config.ts +++ b/test/cli/fixtures/browser-multiple/vitest.config.ts @@ -1,5 +1,5 @@ import { resolve } from 'pathe'; -import { defineConfig, defineWorkspace } from 'vitest/config'; +import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { diff --git a/test/config/fixtures/pool-isolation/isolated.test.ts b/test/config/fixtures/pool-isolation/isolated.test.ts index c0a0ab9148b6..a5a3ca6c25b0 100644 --- a/test/config/fixtures/pool-isolation/isolated.test.ts +++ b/test/config/fixtures/pool-isolation/isolated.test.ts @@ -1,11 +1,11 @@ import { expect, test } from 'vitest' -import type { UserConfig } from 'vitest/config' +import type { TestUserConfig } from 'vitest/config' const pool = process.env.TESTED_POOL as "forks" | "threads"; test('is isolated', () => { // @ts-expect-error -- internal - const config: NonNullable = globalThis.__vitest_worker__.config + const config: TestUserConfig = globalThis.__vitest_worker__.config if (pool === 'forks') { expect(config.poolOptions?.forks?.isolate).toBe(true) diff --git a/test/config/fixtures/pool-isolation/non-isolated.test.ts b/test/config/fixtures/pool-isolation/non-isolated.test.ts index 3a6471b9e657..4794c3091df3 100644 --- a/test/config/fixtures/pool-isolation/non-isolated.test.ts +++ b/test/config/fixtures/pool-isolation/non-isolated.test.ts @@ -1,11 +1,11 @@ import { expect, test } from 'vitest' -import type { UserConfig } from 'vitest/config' +import type { TestUserConfig } from 'vitest/config' const pool = process.env.TESTED_POOL as "forks" | "threads"; test('is isolated', () => { // @ts-expect-error -- internal - const config: NonNullable = globalThis.__vitest_worker__.config + const config: TestUserConfig = globalThis.__vitest_worker__.config if (pool === 'forks') { expect(config.poolOptions?.forks?.isolate).toBe(false) diff --git a/test/config/fixtures/workspace/browser/workspace-with-browser.ts b/test/config/fixtures/workspace/browser/workspace-with-browser.ts index 0f3a52dcb9c7..0ec8e172ec22 100644 --- a/test/config/fixtures/workspace/browser/workspace-with-browser.ts +++ b/test/config/fixtures/workspace/browser/workspace-with-browser.ts @@ -1,6 +1,5 @@ -import { defineWorkspace } from "vitest/config"; - -export default defineWorkspace([ +// TODO: remove when --workspace is removed +export default [ { test: { name: "Browser project", @@ -11,4 +10,4 @@ export default defineWorkspace([ }, } } -]) \ No newline at end of file +] \ No newline at end of file diff --git a/test/config/test/config-types.test-d.ts b/test/config/test/config-types.test-d.ts index 26dd8b4479df..26a335a9a75d 100644 --- a/test/config/test/config-types.test-d.ts +++ b/test/config/test/config-types.test-d.ts @@ -1,5 +1,6 @@ +import type { TestUserConfig } from 'vitest/config' import { assertType, describe, expectTypeOf, test } from 'vitest' -import { defineConfig, defineProject, defineWorkspace, mergeConfig } from 'vitest/config' +import { defineConfig, defineProject, mergeConfig } from 'vitest/config' const expectMainTestConfig = expectTypeOf(defineConfig).parameter(0).resolves.toHaveProperty('test').exclude() const expectProjectTestConfig = expectTypeOf(defineProject).parameter(0).resolves.toHaveProperty('test').exclude() @@ -32,7 +33,7 @@ describe('merge config helper', () => { }) describe('define workspace helper', () => { - type DefineWorkspaceParameter = Parameters[0] + type DefineWorkspaceParameter = TestUserConfig['projects'] test('allows string', () => { assertType(['./path/to/workspace']) @@ -75,32 +76,4 @@ describe('define workspace helper', () => { }, ]) }) - - test('return type matches parameters', () => { - expectTypeOf(defineWorkspace).returns.toMatchTypeOf() - - expectTypeOf(defineWorkspace([ - './path/to/project', - { - test: { - name: 'Workspace Project #1', - include: ['string'], - - // @ts-expect-error -- Not allowed here - coverage: {}, - }, - }, - './path/to/another/project', - { - extends: 'workspace custom field', - test: { - name: 'Workspace Project #2', - include: ['string'], - - // @ts-expect-error -- Not allowed here - coverage: {}, - }, - }, - ])).items.toMatchTypeOf() - }) }) diff --git a/test/core/test/exports.test.ts b/test/core/test/exports.test.ts index 2fdcfaba75c0..1314e201e74f 100644 --- a/test/core/test/exports.test.ts +++ b/test/core/test/exports.test.ts @@ -46,7 +46,6 @@ it('exports snapshot', async ({ skip, task }) => { "defaultInclude": "object", "defineConfig": "function", "defineProject": "function", - "defineWorkspace": "function", "extraInlineDeps": "object", "mergeConfig": "function", }, @@ -202,7 +201,6 @@ it('exports snapshot', async ({ skip, task }) => { "defaultInclude": "object", "defineConfig": "function", "defineProject": "function", - "defineWorkspace": "function", "extraInlineDeps": "object", "mergeConfig": "function", }, diff --git a/test/coverage-test/vitest.workspace.custom.ts b/test/coverage-test/vitest.workspace.custom.ts index 4110885484c4..4996b88f92c5 100644 --- a/test/coverage-test/vitest.workspace.custom.ts +++ b/test/coverage-test/vitest.workspace.custom.ts @@ -1,4 +1,5 @@ -import { defineConfig, defineWorkspace } from 'vitest/config' +import type { UserWorkspaceConfig } from 'vitest/config' +import { defineConfig } from 'vitest/config' const GENERIC_TESTS = 'test/**.test.ts' const V8_TESTS = 'test/**.v8.test.ts' @@ -14,6 +15,11 @@ const config = defineConfig({ }, }) +// TODO: move when --workspace is removed +function defineWorkspace(config: UserWorkspaceConfig[]) { + return config +} + export default defineWorkspace([ // Test cases for v8-provider { diff --git a/test/snapshots/test/fixtures/workspace/vitest.config.ts b/test/snapshots/test/fixtures/workspace/vitest.config.ts index d8625728b0f9..45eba408404c 100644 --- a/test/snapshots/test/fixtures/workspace/vitest.config.ts +++ b/test/snapshots/test/fixtures/workspace/vitest.config.ts @@ -1,4 +1,4 @@ -import { defineConfig, defineWorkspace } from 'vitest/config' +import { defineConfig } from 'vitest/config' export default defineConfig({ test: { diff --git a/test/test-utils/index.ts b/test/test-utils/index.ts index 1095afbc6a9d..fd339c348b3e 100644 --- a/test/test-utils/index.ts +++ b/test/test-utils/index.ts @@ -1,7 +1,7 @@ import type { Options } from 'tinyexec' import type { UserConfig as ViteUserConfig } from 'vite' import type { WorkerGlobalState } from 'vitest' -import type { WorkspaceProjectConfiguration } from 'vitest/config' +import type { TestProjectConfiguration } from 'vitest/config' import type { TestModule, UserConfig, Vitest, VitestRunMode } from 'vitest/node' import { webcrypto as crypto } from 'node:crypto' import fs from 'node:fs' @@ -277,7 +277,7 @@ export type TestFsStructure = Record< string, | string | ViteUserConfig - | WorkspaceProjectConfiguration[] + | TestProjectConfiguration[] | ((...args: any[]) => unknown) | [(...args: any[]) => unknown, { exports?: string[]; imports?: Record }] > diff --git a/test/workspaces/space-pools/isolate.test.ts b/test/workspaces/space-pools/isolate.test.ts index f7d730d79155..1742b9042efd 100644 --- a/test/workspaces/space-pools/isolate.test.ts +++ b/test/workspaces/space-pools/isolate.test.ts @@ -1,9 +1,9 @@ -import type { UserConfig } from 'vitest/config' +import type { ViteUserConfig } from 'vitest/config' import { expect, test } from 'vitest' test('is isolated', () => { // @ts-expect-error -- internal - const config: NonNullable = globalThis.__vitest_worker__.config + const config: NonNullable = globalThis.__vitest_worker__.config if (config.pool === 'forks') { expect(config.poolOptions?.forks?.isolate).toBe(true) diff --git a/test/workspaces/space-pools/multi-worker.test.ts b/test/workspaces/space-pools/multi-worker.test.ts index d793d6d33afe..78d2a723b591 100644 --- a/test/workspaces/space-pools/multi-worker.test.ts +++ b/test/workspaces/space-pools/multi-worker.test.ts @@ -1,9 +1,9 @@ -import type { UserConfig } from 'vitest/config' +import type { ViteUserConfig } from 'vitest/config' import { expect, test } from 'vitest' test('is multi worker', () => { // @ts-expect-error -- internal - const config: NonNullable = globalThis.__vitest_worker__.config + const config: NonNullable = globalThis.__vitest_worker__.config if (config.pool === 'forks') { expect(config.poolOptions?.forks?.singleFork).toBe(false) diff --git a/test/workspaces/space-pools/no-isolate.test.ts b/test/workspaces/space-pools/no-isolate.test.ts index 99371dfc31d9..bd8822e4834b 100644 --- a/test/workspaces/space-pools/no-isolate.test.ts +++ b/test/workspaces/space-pools/no-isolate.test.ts @@ -1,9 +1,9 @@ -import type { UserConfig } from 'vitest/config' +import type { ViteUserConfig } from 'vitest/config' import { expect, test } from 'vitest' test('is not isolated', () => { // @ts-expect-error -- internal - const config: NonNullable = globalThis.__vitest_worker__.config + const config: NonNullable = globalThis.__vitest_worker__.config if (config.pool === 'forks') { expect(config.poolOptions?.forks?.isolate).toBe(false) diff --git a/test/workspaces/space-pools/single-worker.test.ts b/test/workspaces/space-pools/single-worker.test.ts index bdba9f30200c..7b754197dff7 100644 --- a/test/workspaces/space-pools/single-worker.test.ts +++ b/test/workspaces/space-pools/single-worker.test.ts @@ -1,9 +1,9 @@ -import type { UserConfig } from 'vitest/config' +import type { ViteUserConfig } from 'vitest/config' import { expect, test } from 'vitest' test('is single worker', () => { // @ts-expect-error -- internal - const config: NonNullable = globalThis.__vitest_worker__.config + const config: NonNullable = globalThis.__vitest_worker__.config if (config.pool === 'forks') { expect(config.poolOptions?.forks?.singleFork).toBe(true)