diff --git a/src/package.json b/src/package.json index 398ef1cdb5..7467b50b7b 100644 --- a/src/package.json +++ b/src/package.json @@ -442,7 +442,10 @@ "lint": "eslint . --ext=ts --max-warnings=0", "check-types": "tsc --noEmit", "test": "vitest run", + "test:unit": "vitest run --config vitest.unit.config.ts", + "test:dist": "vitest run --config vitest.dist.config.ts", "test:coverage": "vitest run --coverage", + "test:coverage:unit": "vitest run --config vitest.unit.config.ts --coverage", "format": "prettier --write .", "bundle": "node esbuild.mjs", "vscode:prepublish": "pnpm bundle --production", diff --git a/src/turbo.json b/src/turbo.json index bde7297927..024971987f 100644 --- a/src/turbo.json +++ b/src/turbo.json @@ -5,9 +5,21 @@ "test": { "dependsOn": ["$TURBO_EXTENDS$", "bundle"] }, + "test:unit": { + "dependsOn": ["@roo-code/types#build"], + "inputs": ["$TURBO_DEFAULT$", "!__tests__/dist_assets.spec.ts"] + }, + "test:dist": { + "dependsOn": ["bundle"] + }, "test:coverage": { "dependsOn": ["$TURBO_EXTENDS$", "bundle"] }, + "test:coverage:unit": { + "dependsOn": ["@roo-code/types#build"], + "inputs": ["$TURBO_DEFAULT$", "!__tests__/dist_assets.spec.ts"], + "outputs": ["coverage/unit/**"] + }, "bundle": { "dependsOn": ["^build", "@roo-code/vscode-webview#build"], "outputs": ["dist/**"] diff --git a/src/vitest.dist.config.ts b/src/vitest.dist.config.ts new file mode 100644 index 0000000000..0eae23958f --- /dev/null +++ b/src/vitest.dist.config.ts @@ -0,0 +1,13 @@ +import { defineConfig, mergeConfig } from "vitest/config" + +import baseConfig from "./vitest.config" + +export default mergeConfig( + baseConfig, + defineConfig({ + test: { + // This smoke test validates emitted artifacts; source coverage remains in the unit lane. + include: ["__tests__/dist_assets.spec.ts"], + }, + }), +) diff --git a/src/vitest.unit.config.ts b/src/vitest.unit.config.ts new file mode 100644 index 0000000000..79e93366f1 --- /dev/null +++ b/src/vitest.unit.config.ts @@ -0,0 +1,15 @@ +import { configDefaults, defineConfig, mergeConfig } from "vitest/config" + +import baseConfig from "./vitest.config" + +export default mergeConfig( + baseConfig, + defineConfig({ + test: { + exclude: [...configDefaults.exclude, "__tests__/dist_assets.spec.ts"], + coverage: { + reportsDirectory: "coverage/unit", + }, + }, + }), +)