Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion code/addons/a11y/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/addons/docs/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/addons/links/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/addons/onboarding/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/addons/pseudo-states/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/addons/themes/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/addons/vitest/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/builders/builder-vite/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/builders/builder-webpack5/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/core/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../vitest.workspace';
import { vitestCommonConfig } from '../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/frameworks/angular/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/frameworks/ember/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/frameworks/nextjs-vite/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/frameworks/nextjs/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/frameworks/preact-vite/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/frameworks/react-native-web-vite/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/frameworks/react-vite/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/frameworks/react-webpack5/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/frameworks/server-webpack5/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/frameworks/svelte-vite/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/frameworks/sveltekit/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/frameworks/vue3-vite/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/frameworks/web-components-vite/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/lib/cli-sb/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/lib/cli-storybook/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/lib/codemod/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/lib/core-webpack/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/lib/create-storybook/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/lib/csf-plugin/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/presets/server-webpack/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/renderers/html/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/renderers/preact/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/renderers/react/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/renderers/server/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/renderers/svelte/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default defineConfig(
mergeConfig(vitestCommonConfig, {
Expand Down
2 changes: 1 addition & 1 deletion code/renderers/vue3/vitest.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { defineConfig, mergeConfig } from 'vitest/config';

import vue from '@vitejs/plugin-vue';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/renderers/web-components/vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig, mergeConfig } from 'vitest/config';

import { vitestCommonConfig } from '../../vitest.workspace';
import { vitestCommonConfig } from '../../vitest.shared';

export default mergeConfig(
vitestCommonConfig,
Expand Down
2 changes: 1 addition & 1 deletion code/vitest-storybook.config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { storybookTest } from '@storybook/addon-vitest/vitest-plugin';

import Inspect from 'vite-plugin-inspect';

import { vitestCommonConfig } from './vitest.workspace';
import { vitestCommonConfig } from './vitest.shared';

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

Import path updated correctly for Vitest migration.

The import source change from vitest.workspace to vitest.shared aligns with the PR's objective to migrate away from deprecated Vitest workspaces.

Please verify that:

  1. The vitest.shared module correctly exports vitestCommonConfig
  2. All references to vitest.workspace have been updated across the codebase
  3. The Vitest workspaces feature is indeed deprecated

🏁 Script executed:

#!/bin/bash
# Verify no remaining references to vitest.workspace in config files
rg -n "vitest\.workspace" --type=ts --type=js

# Verify vitest.shared exports vitestCommonConfig
rg -n "export.*vitestCommonConfig" --type=ts code/vitest.shared.ts

Length of output: 1502


🌐 Web query:

Is the workspaces feature deprecated in Vitest? What is the recommended migration path to projects?

💡 Result:

Short answer: Yes — the workspace option (and separate vitest.workspace file) is deprecated since Vitest 3.2 and you should migrate to the test.projects pattern. Replace your workspace file (or workspace setting) by moving its array into the root vitest.config (use test.projects). Example migration shown in the official guide. [1][2]

References:

  • Config docs (workspace deprecated; use projects). [1]
  • Migration guide showing move from vitest.workspace to test.projects in root vitest.config. [2]

Incomplete Vitest workspace migration — multiple references still need updating.

Verification confirms that while vitest.shared correctly exports vitestCommonConfig and Vitest workspaces are indeed deprecated (since 3.2), the migration is incomplete. The codebase still contains 12+ active references to vitest.workspace that must be updated to complete the deprecation migration:

  • scripts/tasks/sandbox-parts.ts:500
  • code/lib/create-storybook/src/ink/steps/checks/vitestConfigFiles.tsx:102
  • code/lib/create-storybook/src/ink/steps/checks/vitestConfigFiles.test.ts:79, 82, 127, 131
  • code/addons/vitest/src/node/vitest-manager.ts:79
  • code/addons/vitest/src/postinstall.ts:380, 407
  • code/addons/vitest/src/updateVitestFile.test.ts:1059, 1115

These files reference the deprecated workspace pattern and should be updated to use test.projects instead. Complete the migration before this PR can be merged.


const extraPlugins: any[] = [];
if (process.env.INSPECT === 'true') {
Expand Down
11 changes: 11 additions & 0 deletions code/vitest.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,17 @@ export default defineConfig({
NODE_ENV: 'test',
},

projects: [
'vitest-storybook.config.mts',
'addons/*/vitest.config.ts',
'frameworks/*/vitest.config.ts',
'lib/*/vitest.config.ts',
'core/vitest.config.ts',
'builders/*/vitest.config.ts',
'presets/*/vitest.config.ts',
'renderers/*/vitest.config.ts',
],
Comment on lines +9 to +18

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

LGTM! Projects setup replaces deprecated workspaces.

The test.projects array correctly establishes the multi-project setup using glob patterns to discover individual configs. This is the standard approach for Vitest's projects feature.

Verify that all intended config files are matched by the glob patterns:


🏁 Script executed:

#!/bin/bash
# Description: Verify all vitest.config.ts files are covered by the projects patterns

echo "=== Checking project patterns coverage ==="
echo ""

# List all vitest config files
echo "All vitest config files in code directory:"
fd -e ts -e mts 'vitest.*config' code/ --type f

echo ""
echo "=== Files that should match project patterns ==="
echo "Pattern: vitest-storybook.config.mts"
fd 'vitest-storybook.config.mts' code/ --type f

echo ""
echo "Pattern: addons/*/vitest.config.ts"
fd 'vitest.config.ts' code/addons/ --max-depth 2 --type f

echo ""
echo "Pattern: frameworks/*/vitest.config.ts"
fd 'vitest.config.ts' code/frameworks/ --max-depth 2 --type f

echo ""
echo "Pattern: lib/*/vitest.config.ts"
fd 'vitest.config.ts' code/lib/ --max-depth 2 --type f

echo ""
echo "Pattern: core/vitest.config.ts"
fd 'vitest.config.ts' code/core/ --max-depth 1 --type f

echo ""
echo "Pattern: builders/*/vitest.config.ts"
fd 'vitest.config.ts' code/builders/ --max-depth 2 --type f

echo ""
echo "Pattern: presets/*/vitest.config.ts"
fd 'vitest.config.ts' code/presets/ --max-depth 2 --type f

echo ""
echo "Pattern: renderers/*/vitest.config.ts"
fd 'vitest.config.ts' code/renderers/ --max-depth 2 --type f

Length of output: 3920


Gathering additional information to verify the coverage of named config files.

Add glob pattern for named vitest configs in lib packages

The pattern lib/*/vitest.config.ts does not match vitest.integration.config.ts files, which are valid Vitest configuration files that match the pattern (vite|vitest).*.config.*.

Update the projects array to include named configurations:

'lib/*/vitest.config.ts',
'lib/*/vitest.*.config.ts',

This ensures code/lib/eslint-plugin/vitest.integration.config.ts and similar named configs are recognized as projects.

🤖 Prompt for AI Agents
In code/vitest.config.ts around lines 9 to 18, the projects array only includes
'lib/*/vitest.config.ts' which misses named config files like
vitest.integration.config.ts; add an additional glob entry that matches named
Vitest config patterns (e.g., 'lib/*/vitest.*.config.ts') so both default and
named configs under lib/* are picked up; update the projects array to include
this new pattern alongside the existing one.


coverage: {
all: false,
provider: 'istanbul',
Expand Down
13 changes: 1 addition & 12 deletions code/vitest.workspace.ts → code/vitest.shared.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,6 @@
import { resolve } from 'node:path';

import { defineConfig, defineWorkspace } from 'vitest/config';

export default defineWorkspace([
'vitest-storybook.config.mts',
'addons/*/vitest.config.ts',
'frameworks/*/vitest.config.ts',
'lib/*/vitest.config.ts',
'core/vitest.config.ts',
'builders/*/vitest.config.ts',
'presets/*/vitest.config.ts',
'renderers/*/vitest.config.ts',
]);
import { defineConfig } from 'vitest/config';

/**
* CircleCI reports the wrong number of threads to Node.js, so we need to set it manually. Unit
Expand Down