feat(KB-044): add test coverage reporting with vitest coverage-v8
- Add @vitest/coverage-v8 to all workspace packages - Configure vitest coverage settings in all vitest.config.ts files - Align vitest versions across packages for consistency - Add 'test:coverage' script to root package.json - Verify all tests pass with coverage reporting enabled
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -5,6 +5,9 @@ node_modules/
|
|||||||
dist/
|
dist/
|
||||||
*.tsbuildinfo
|
*.tsbuildinfo
|
||||||
|
|
||||||
|
# Coverage reports
|
||||||
|
coverage/
|
||||||
|
|
||||||
# hai runtime (local board state — don't commit)
|
# hai runtime (local board state — don't commit)
|
||||||
.kb/
|
.kb/
|
||||||
.hai/
|
.hai/
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
"build:exe": "pnpm build && pnpm --filter @dustinbyrne/kb build:exe",
|
"build:exe": "pnpm build && pnpm --filter @dustinbyrne/kb build:exe",
|
||||||
"build:exe:all": "pnpm build && pnpm --filter @dustinbyrne/kb build:exe:all",
|
"build:exe:all": "pnpm build && pnpm --filter @dustinbyrne/kb build:exe:all",
|
||||||
"test": "pnpm -r test",
|
"test": "pnpm -r test",
|
||||||
|
"test:coverage": "pnpm -r test -- --coverage",
|
||||||
"typecheck": "pnpm -r typecheck",
|
"typecheck": "pnpm -r typecheck",
|
||||||
"changeset": "changeset",
|
"changeset": "changeset",
|
||||||
"version": "changeset version",
|
"version": "changeset version",
|
||||||
|
|||||||
@@ -60,6 +60,7 @@
|
|||||||
"@kb/dashboard": "workspace:*",
|
"@kb/dashboard": "workspace:*",
|
||||||
"@kb/engine": "workspace:*",
|
"@kb/engine": "workspace:*",
|
||||||
"@sinclair/typebox": "^0.34.0",
|
"@sinclair/typebox": "^0.34.0",
|
||||||
|
"@vitest/coverage-v8": "^3.1.0",
|
||||||
"tsup": "^8.5.1",
|
"tsup": "^8.5.1",
|
||||||
"tsx": "^4.19.0",
|
"tsx": "^4.19.0",
|
||||||
"typescript": "^5.7.0",
|
"typescript": "^5.7.0",
|
||||||
|
|||||||
@@ -3,5 +3,12 @@ import { defineConfig } from "vitest/config";
|
|||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
test: {
|
test: {
|
||||||
include: ["src/**/*.test.ts"],
|
include: ["src/**/*.test.ts"],
|
||||||
|
coverage: {
|
||||||
|
enabled: false,
|
||||||
|
reporter: ["text", "html", "json"],
|
||||||
|
reportsDirectory: "./coverage",
|
||||||
|
include: ["src/**/*.ts"],
|
||||||
|
exclude: ["**/*.test.ts", "**/*.d.ts", "dist/**"],
|
||||||
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^25.5.0",
|
"@types/node": "^25.5.0",
|
||||||
|
"@vitest/coverage-v8": "^3.1.0",
|
||||||
"typescript": "^5.7.0",
|
"typescript": "^5.7.0",
|
||||||
"vitest": "^3.1.0"
|
"vitest": "^3.1.0"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -3,5 +3,12 @@ import { defineConfig } from "vitest/config";
|
|||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
test: {
|
test: {
|
||||||
include: ["src/**/*.test.ts"],
|
include: ["src/**/*.test.ts"],
|
||||||
|
coverage: {
|
||||||
|
enabled: false,
|
||||||
|
reporter: ["text", "html", "json"],
|
||||||
|
reportsDirectory: "./coverage",
|
||||||
|
include: ["src/**/*.ts"],
|
||||||
|
exclude: ["**/*.test.ts", "**/*.d.ts", "dist/**"],
|
||||||
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -42,10 +42,11 @@
|
|||||||
"@types/react": "^19.0.0",
|
"@types/react": "^19.0.0",
|
||||||
"@types/react-dom": "^19.0.0",
|
"@types/react-dom": "^19.0.0",
|
||||||
"@vitejs/plugin-react": "^4.3.0",
|
"@vitejs/plugin-react": "^4.3.0",
|
||||||
|
"@vitest/coverage-v8": "^3.1.0",
|
||||||
"jsdom": "^29.0.1",
|
"jsdom": "^29.0.1",
|
||||||
"typescript": "^5.7.0",
|
"typescript": "^5.7.0",
|
||||||
"vite": "^6.0.0",
|
"vite": "^6.0.0",
|
||||||
"vitest": "^4.1.1"
|
"vitest": "^3.1.0"
|
||||||
},
|
},
|
||||||
"private": true
|
"private": true
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,5 +14,12 @@ export default defineConfig({
|
|||||||
globals: true,
|
globals: true,
|
||||||
include: ["app/**/*.test.{ts,tsx}", "src/**/*.test.{ts,tsx}"],
|
include: ["app/**/*.test.{ts,tsx}", "src/**/*.test.{ts,tsx}"],
|
||||||
setupFiles: ["./vitest.setup.ts"],
|
setupFiles: ["./vitest.setup.ts"],
|
||||||
|
coverage: {
|
||||||
|
enabled: false,
|
||||||
|
reporter: ["text", "html", "json"],
|
||||||
|
reportsDirectory: "./coverage",
|
||||||
|
include: ["app/**/*.{ts,tsx}", "src/**/*.{ts,tsx}"],
|
||||||
|
exclude: ["**/*.test.{ts,tsx}", "**/*.d.ts", "dist/**"],
|
||||||
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -27,8 +27,9 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^25.5.0",
|
"@types/node": "^25.5.0",
|
||||||
|
"@vitest/coverage-v8": "^3.1.0",
|
||||||
"typescript": "^5.7.0",
|
"typescript": "^5.7.0",
|
||||||
"vitest": "^4.1.1"
|
"vitest": "^3.1.0"
|
||||||
},
|
},
|
||||||
"private": true
|
"private": true
|
||||||
}
|
}
|
||||||
|
|||||||
14
packages/engine/vitest.config.ts
Normal file
14
packages/engine/vitest.config.ts
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import { defineConfig } from "vitest/config";
|
||||||
|
|
||||||
|
export default defineConfig({
|
||||||
|
test: {
|
||||||
|
include: ["src/**/*.test.ts"],
|
||||||
|
coverage: {
|
||||||
|
enabled: false,
|
||||||
|
reporter: ["text", "html", "json"],
|
||||||
|
reportsDirectory: "./coverage",
|
||||||
|
include: ["src/**/*.ts"],
|
||||||
|
exclude: ["**/*.test.ts", "**/*.d.ts", "dist/**"],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
573
pnpm-lock.yaml
generated
573
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user