fix(test): switch workspace runner to vitest 4 \projects\ field
Some checks failed
CI/CD / typecheck (pull_request) Successful in 57s
CI/CD / test (pull_request) Successful in 1m7s
CI/CD / lint (pull_request) Successful in 2m43s
CI/CD / smoke (pull_request) Failing after 1m45s
CI/CD / build (pull_request) Successful in 5m43s
CI/CD / publish (pull_request) Has been skipped
Some checks failed
CI/CD / typecheck (pull_request) Successful in 57s
CI/CD / test (pull_request) Successful in 1m7s
CI/CD / lint (pull_request) Successful in 2m43s
CI/CD / smoke (pull_request) Failing after 1m45s
CI/CD / build (pull_request) Successful in 5m43s
CI/CD / publish (pull_request) Has been skipped
The workspace-level \`pnpm test:run\` (which fulldeploy.sh runs as a gate) was failing with \`localStorage is not defined\` on the new src/web tests. Two intertwined causes: 1. vitest 4 deprecated \`vitest.workspace.ts\`. The file was being silently ignored, so per-package configs (cli, mcpd, mcplocal) weren't being honored under workspace mode either — the root config was being used for all of them. 2. With the root config in charge, src/web/tests ran with the default Node environment, no \`localStorage\` global, so the api wrapper's test setup blew up. Fix: - Move workspace projects into the root \`vitest.config.ts\` under the new \`projects\` array (the vitest 4 replacement). - Add a proper \`src/web/vitest.config.ts\` (vitest 4 doesn't auto-pick up vite.config.ts as a test config in workspace mode, even though per-package \`pnpm --filter\` does). - Exclude \`src/web/tests/**\` from the root-level include so we don't double-run them under the wrong env. After: \`pnpm test:run\` runs 1999/1999 across 149 files (was 1992/1996 with 4 web failures). Per-package runs unchanged. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -9,8 +9,20 @@ export default defineConfig({
|
||||
exclude: ['**/node_modules/**', '**/dist/**', '**/*.config.*'],
|
||||
},
|
||||
include: ['src/*/tests/**/*.test.ts', 'tests/**/*.test.ts'],
|
||||
exclude: ['**/node_modules/**', '**/smoke/**', 'src/db/tests/**'],
|
||||
// src/web tests need jsdom; they're run via the web package's own
|
||||
// vitest.config.ts under the projects entry below.
|
||||
exclude: ['**/node_modules/**', '**/smoke/**', 'src/db/tests/**', 'src/web/tests/**'],
|
||||
testTimeout: 10000,
|
||||
// Vitest 4 uses `projects` (in-config) instead of vitest.workspace.ts.
|
||||
// Each project below is rooted in a workspace package; vitest reads
|
||||
// its `vitest.config.ts` (or vite.config.ts) for the test config.
|
||||
projects: [
|
||||
'src/shared',
|
||||
'src/cli',
|
||||
'src/mcpd',
|
||||
'src/mcplocal',
|
||||
'src/web',
|
||||
],
|
||||
// DB tests require a test database; run them explicitly via:
|
||||
// pnpm --filter db exec vitest run
|
||||
// globalSetup: ['src/db/tests/global-setup.ts'],
|
||||
|
||||
Reference in New Issue
Block a user