Merge branch 'phase/57-client-typecheck'

# Conflicts:
#	docs/phases/10-craft/README.md
This commit is contained in:
Leonid Pershin
2026-08-20 13:12:16 +03:00
8 changed files with 137 additions and 25 deletions
+7 -4
View File
@@ -46,8 +46,9 @@ dotnet test tests/HSchool.People.Tests --filter FullyQualifiedName~YearlyIntake
npm --prefix src/HSchool.Client test -- src/ui/peoplePanel.test.ts
```
Solution-wide `dotnet test` and a full client `npm test` are CI, or when the user asked. Agents
scope the run — Testing policy.
Client `npm test` runs `tsc -b` (`typecheck`) then vitest; extra args after `--` go to vitest.
`test:watch` is vitest only. Solution-wide `dotnet test` and a full client `npm test` are CI, or
when the user asked. Agents scope the run — Testing policy.
```bash
npm --prefix src/HSchool.Client run build
@@ -126,7 +127,7 @@ say so explicitly in the change description.
## Testing policy
**What to run.** One project from the list below, filtered to the new or changed class while
iterating. Client Vitest only if `src/HSchool.Client` changed. `HSchool.AppHost.Tests` only if
iterating. Client `npm test` (typecheck + Vitest) only if `src/HSchool.Client` changed. `HSchool.AppHost.Tests` only if
the change is HTTP, WebSocket, or host wiring — it boots a server. Do not `dotnet test` the
solution, do not run client and .NET together "to be sure", do not re-run after a merge that
only resolved a status line. Solution-wide is CI.
@@ -157,7 +158,9 @@ only resolved a status line. Solution-wide is CI.
- Screen logic is covered in Vitest under happy-dom (`ui/*.test.ts`): people filters and the
pager, the create dialog (core stays on, map reset, submit busy), planner rejection text, and
the payroll-cap message. Layout and styles are still verified by running the app. Dictionaries
and date formatting stay in `i18n/strings.test.ts` and `format/gameTime.test.ts`.
and date formatting stay in `i18n/strings.test.ts` and `format/gameTime.test.ts`. A duplicate
key in `strings.ts` is a typecheck failure (`TS1117` / `TS2300`); client `npm test` runs tsc
before vitest, so it is red without `npm run build`.
## Dependencies