From 2f51991558917295d973058de10a0126f3d3c554 Mon Sep 17 00:00:00 2001 From: Kacper Date: Mon, 5 Jan 2026 14:45:33 +0100 Subject: [PATCH 1/3] refactor: use Vitest projects config instead of deprecated workspace MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add root vitest.config.ts with projects array (replaces deprecated workspace) - Add name property to each project's vitest.config.ts for filtering - Update package.json test scripts to use vitest projects - Add vitest to root devDependencies This addresses the Vitest warning about multiple configs impacting performance by running all projects in a single Vitest process. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- apps/server/vitest.config.ts | 1 + libs/dependency-resolver/vitest.config.ts | 1 + libs/git-utils/vitest.config.ts | 1 + libs/model-resolver/vitest.config.ts | 1 + libs/platform/vitest.config.ts | 1 + libs/prompts/vitest.config.ts | 1 + libs/utils/vitest.config.ts | 1 + package.json | 13 ++++++++----- vitest.config.ts | 16 ++++++++++++++++ 9 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 vitest.config.ts diff --git a/apps/server/vitest.config.ts b/apps/server/vitest.config.ts index e56e764c..36577c5e 100644 --- a/apps/server/vitest.config.ts +++ b/apps/server/vitest.config.ts @@ -3,6 +3,7 @@ import path from 'path'; export default defineConfig({ test: { + name: 'server', reporters: ['verbose'], globals: true, environment: 'node', diff --git a/libs/dependency-resolver/vitest.config.ts b/libs/dependency-resolver/vitest.config.ts index 605e3206..5ea8d7ee 100644 --- a/libs/dependency-resolver/vitest.config.ts +++ b/libs/dependency-resolver/vitest.config.ts @@ -2,6 +2,7 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { + name: 'dependency-resolver', globals: true, environment: 'node', include: ['tests/**/*.test.ts'], diff --git a/libs/git-utils/vitest.config.ts b/libs/git-utils/vitest.config.ts index d3fe6f85..a1663bab 100644 --- a/libs/git-utils/vitest.config.ts +++ b/libs/git-utils/vitest.config.ts @@ -2,6 +2,7 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { + name: 'git-utils', globals: true, environment: 'node', include: ['tests/**/*.test.ts'], diff --git a/libs/model-resolver/vitest.config.ts b/libs/model-resolver/vitest.config.ts index 0b83cc4e..1ff65363 100644 --- a/libs/model-resolver/vitest.config.ts +++ b/libs/model-resolver/vitest.config.ts @@ -2,6 +2,7 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { + name: 'model-resolver', globals: true, environment: 'node', include: ['tests/**/*.test.ts'], diff --git a/libs/platform/vitest.config.ts b/libs/platform/vitest.config.ts index 08b2f10c..c0e0b91f 100644 --- a/libs/platform/vitest.config.ts +++ b/libs/platform/vitest.config.ts @@ -2,6 +2,7 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { + name: 'platform', globals: true, environment: 'node', include: ['tests/**/*.test.ts'], diff --git a/libs/prompts/vitest.config.ts b/libs/prompts/vitest.config.ts index 01a9d58d..d61b462a 100644 --- a/libs/prompts/vitest.config.ts +++ b/libs/prompts/vitest.config.ts @@ -2,6 +2,7 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { + name: 'prompts', globals: true, environment: 'node', include: ['tests/**/*.test.ts'], diff --git a/libs/utils/vitest.config.ts b/libs/utils/vitest.config.ts index bda40f56..b281170b 100644 --- a/libs/utils/vitest.config.ts +++ b/libs/utils/vitest.config.ts @@ -2,6 +2,7 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { + name: 'utils', globals: true, environment: 'node', include: ['tests/**/*.test.ts'], diff --git a/package.json b/package.json index 7772c924..e42ac727 100644 --- a/package.json +++ b/package.json @@ -42,10 +42,12 @@ "lint": "npm run lint --workspace=apps/ui", "test": "npm run test --workspace=apps/ui", "test:headed": "npm run test:headed --workspace=apps/ui", - "test:server": "npm run test --workspace=apps/server", - "test:server:coverage": "npm run test:cov --workspace=apps/server", - "test:packages": "npm run test -w @automaker/types -w @automaker/utils -w @automaker/prompts -w @automaker/platform -w @automaker/model-resolver -w @automaker/dependency-resolver -w @automaker/git-utils --if-present", - "test:all": "npm run test:packages && npm run test:server", + "test:packages": "vitest run --project=utils --project=platform --project=prompts --project=model-resolver --project=dependency-resolver --project=git-utils", + "test:server": "vitest run --project=server", + "test:server:coverage": "vitest run --project=server --coverage", + "test:unit": "vitest run", + "test:unit:watch": "vitest", + "test:all": "vitest run", "lint:lockfile": "node scripts/lint-lockfile.mjs", "format": "prettier --write .", "format:check": "prettier --check .", @@ -64,6 +66,7 @@ "devDependencies": { "husky": "9.1.7", "lint-staged": "16.2.7", - "prettier": "3.7.4" + "prettier": "3.7.4", + "vitest": "4.0.16" } } diff --git a/vitest.config.ts b/vitest.config.ts new file mode 100644 index 00000000..80a64966 --- /dev/null +++ b/vitest.config.ts @@ -0,0 +1,16 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + // Use projects instead of deprecated workspace + projects: [ + 'libs/utils', + 'libs/platform', + 'libs/prompts', + 'libs/model-resolver', + 'libs/dependency-resolver', + 'libs/git-utils', + 'apps/server', + ], + }, +}); From d1e3251c29dd03f9cb98865c421da33ed00bfb30 Mon Sep 17 00:00:00 2001 From: Kacper Date: Mon, 5 Jan 2026 14:50:47 +0100 Subject: [PATCH 2/3] refactor: use glob patterns for vitest projects configuration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Address PR review feedback: - Use 'libs/*/vitest.config.ts' glob to auto-discover lib projects - Simplify test:packages script to use --project='!server' exclusion - New libs with vitest.config.ts will be automatically included 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- package.json | 2 +- vitest.config.ts | 11 ++--------- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index e42ac727..ddfd3ddf 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "lint": "npm run lint --workspace=apps/ui", "test": "npm run test --workspace=apps/ui", "test:headed": "npm run test:headed --workspace=apps/ui", - "test:packages": "vitest run --project=utils --project=platform --project=prompts --project=model-resolver --project=dependency-resolver --project=git-utils", + "test:packages": "vitest run --project='!server'", "test:server": "vitest run --project=server", "test:server:coverage": "vitest run --project=server --coverage", "test:unit": "vitest run", diff --git a/vitest.config.ts b/vitest.config.ts index 80a64966..658451e1 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -3,14 +3,7 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { // Use projects instead of deprecated workspace - projects: [ - 'libs/utils', - 'libs/platform', - 'libs/prompts', - 'libs/model-resolver', - 'libs/dependency-resolver', - 'libs/git-utils', - 'apps/server', - ], + // Glob patterns auto-discover projects with vitest.config.ts + projects: ['libs/*/vitest.config.ts', 'apps/server'], }, }); From fde9eea2d6c050973adc98e4fb8ad9f22d1efa23 Mon Sep 17 00:00:00 2001 From: Kacper Date: Mon, 5 Jan 2026 14:59:46 +0100 Subject: [PATCH 3/3] style: use explicit config path for server project MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Address PR review feedback for consistency - use full path 'apps/server/vitest.config.ts' instead of just 'apps/server'. Note: libs/types has no tests (type definitions only), so it doesn't need a vitest.config.ts. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- vitest.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vitest.config.ts b/vitest.config.ts index 658451e1..af914352 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -4,6 +4,6 @@ export default defineConfig({ test: { // Use projects instead of deprecated workspace // Glob patterns auto-discover projects with vitest.config.ts - projects: ['libs/*/vitest.config.ts', 'apps/server'], + projects: ['libs/*/vitest.config.ts', 'apps/server/vitest.config.ts'], }, });