ci(x): typecheck test files — the gap vitest and the build tsconfigs both miss

Test files were typechecked by nothing: tsconfig.build.json excludes
them (correctly — they must not land in dist), and vitest transforms
with esbuild, which strips types without checking them. That gap is
where the review's two tsc breaks and the fixture drift accumulated.

Adds 'typecheck' scripts per package (dev tsconfigs, which include
src/**/*.test.ts; renderer reuses its existing tsc -b), a root
orchestrator mirroring the test script, and a CI step in the vitest
job. All three packages are currently clean.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Ramnique Singh 2026-07-10 16:27:06 +05:30
parent 02912ba9ef
commit 6a8e67878d
6 changed files with 15 additions and 1 deletions

View file

@ -34,6 +34,12 @@ jobs:
- name: Run apps/x Vitest suites
run: npm test
# Typechecks with the dev tsconfigs, which include test files —
# the build tsconfigs exclude them and vitest strips types without
# checking, so this is the only gate that sees type errors in tests.
- name: Typecheck apps/x packages
run: npm run typecheck
apps-x-electron-package:
name: apps/x Electron package smoke test
runs-on: ubuntu-latest

View file

@ -139,6 +139,7 @@ Long-form docs for specific features. Read the relevant file before making chang
### Verify compilation
```bash
cd apps/x && npm run deps && npm run lint
cd apps/x && npm run typecheck # dev tsconfigs — the only gate that typechecks *.test.ts
```
## Tech Stack

View file

@ -5,6 +5,7 @@
"scripts": {
"dev": "vite",
"build": "tsc -b && vite build",
"typecheck": "tsc -b",
"lint": "eslint .",
"preview": "vite preview",
"test": "vitest run",

View file

@ -16,7 +16,11 @@
"test": "npm run shared && npm run test:shared && npm run test:core && npm run test:renderer",
"test:shared": "cd packages/shared && npm test",
"test:core": "cd packages/core && npm test",
"test:renderer": "cd apps/renderer && npm test"
"test:renderer": "cd apps/renderer && npm test",
"typecheck": "npm run shared && npm run typecheck:shared && npm run typecheck:core && npm run typecheck:renderer",
"typecheck:shared": "cd packages/shared && npm run typecheck",
"typecheck:core": "cd packages/core && npm run typecheck",
"typecheck:renderer": "cd apps/renderer && npm run typecheck"
},
"devDependencies": {
"@eslint/js": "^9.39.2",

View file

@ -7,6 +7,7 @@
"scripts": {
"build": "rm -rf dist && tsc -p tsconfig.build.json",
"dev": "tsc -w -p tsconfig.build.json",
"typecheck": "tsc --noEmit -p tsconfig.json",
"test": "vitest run",
"test:watch": "vitest",
"inspect-turn": "node dist/runtime/turns/inspect-cli.js",

View file

@ -7,6 +7,7 @@
"scripts": {
"build": "rm -rf dist && tsc -p tsconfig.build.json",
"dev": "tsc -w",
"typecheck": "tsc --noEmit -p tsconfig.json",
"test": "vitest run",
"test:watch": "vitest"
},