docs(testing): documenteer dat testbestanden een eigen typecheck-config hebben #104

Merged
janpeter merged 1 commit from docs/testing-typecheck-scope into main 2026-07-26 18:46:12 +02:00
Owner

Waarom

De ## Testing-sectie noemde alleen npm test en npm run typecheck, wat suggereert dat die twee samen de repo dekken. Sinds #101/#102 klopt dat niet meer: tsconfig.json include't alleen src/**/*, en tsconfig.type-tests.json dekt __tests__/**/* via pretest. Wie alleen de sectie las, wist niet dat testbestanden überhaupt getypecheckt worden — of hoe hij dat los kon draaien.

Wat

  • Het codeblok noemt nu alle drie de commando's mét hun werkelijke scope.
  • Een tabel met de twee configs en hoe ze draaien, plus de pretest-koppeling (daarom hoeft .forgejo/workflows/ci.yml niets extra's te doen).
  • Waarom de split bestaat: vitest transpileert zonder te typechecken, dus een typefout in een test wordt gewoon groen. Met de regel dat de include een glob moet blijven en nooit een bestandslijst, zodat nieuwe testbestanden automatisch gedekt zijn.
  • De twee dingen die je bij het schrijven van tests tegenkomt: toolText() voor de CallToolResult-content-unie, en AnyMock voor de vitest-4 vi.fn-overload. Plus de NodeNext-.js-regel — met de niet-voor-de-hand-liggende consequentie dat een ontbrekende extensie TS2307 geeft, wat betekent dat het bestand hélemaal niet getypecheckt werd.
  • Verwijzing naar product-doc PATTERNS/typecheck-scope-src-en-tests voor de diepte, zodat CLAUDE.md compact blijft.

Verificatie

Docs-only — de diff raakt uitsluitend CLAUDE.md (34 toegevoegd, 2 gewijzigd). Geen code, dus de test- en typecheck-gates kunnen door deze wijziging niet van uitkomst veranderen; ik heb ze niet gedraaid (verse worktree zonder node_modules).

Wat wél is gecontroleerd — elke feitelijke claim tegen de bron:

Claim Geverifieerd tegen
pretesttypecheck:tests, en de exacte commando's package.json scripts
CI draait npm run typecheck + npm run test .forgejo/workflows/ci.yml
include van beide configs tsconfig.json, tsconfig.type-tests.json
Beide helpers bestaan op de genoemde paden __tests__/helpers/

Merge-volgorde

Geen harde afhankelijkheid, maar let op de overlap: fix/integration-tests-serieel heeft een ongemergde commit die een ### Integration tests need a database-subsectie toevoegt in dezelfde ## Testing-sectie. Die voegt regels toe ná het codeblok; deze PR wijzigt het codeblok zelf en hangt de nieuwe subsectie onderaan. De gewijzigde regels overlappen dus niet, maar bij een merge-conflict is dat de plek om te kijken.

🤖 Generated with Claude Code

## Waarom De `## Testing`-sectie noemde alleen `npm test` en `npm run typecheck`, wat suggereert dat die twee samen de repo dekken. Sinds #101/#102 klopt dat niet meer: `tsconfig.json` include't alleen `src/**/*`, en `tsconfig.type-tests.json` dekt `__tests__/**/*` via `pretest`. Wie alleen de sectie las, wist niet dat testbestanden überhaupt getypecheckt worden — of hoe hij dat los kon draaien. ## Wat - Het codeblok noemt nu alle drie de commando's mét hun werkelijke scope. - Een tabel met de twee configs en hoe ze draaien, plus de `pretest`-koppeling (daarom hoeft `.forgejo/workflows/ci.yml` niets extra's te doen). - Waarom de split bestaat: vitest transpileert zonder te typechecken, dus een typefout in een test wordt gewoon groen. Met de regel dat de `include` een glob moet blijven en nooit een bestandslijst, zodat nieuwe testbestanden automatisch gedekt zijn. - De twee dingen die je bij het schrijven van tests tegenkomt: `toolText()` voor de `CallToolResult`-content-unie, en `AnyMock` voor de vitest-4 `vi.fn`-overload. Plus de NodeNext-`.js`-regel — met de niet-voor-de-hand-liggende consequentie dat een ontbrekende extensie TS2307 geeft, wat betekent dat het bestand hélemaal niet getypecheckt werd. - Verwijzing naar product-doc `PATTERNS/typecheck-scope-src-en-tests` voor de diepte, zodat CLAUDE.md compact blijft. ## Verificatie Docs-only — de diff raakt uitsluitend `CLAUDE.md` (34 toegevoegd, 2 gewijzigd). Geen code, dus de test- en typecheck-gates kunnen door deze wijziging niet van uitkomst veranderen; ik heb ze niet gedraaid (verse worktree zonder `node_modules`). Wat wél is gecontroleerd — elke feitelijke claim tegen de bron: | Claim | Geverifieerd tegen | |---|---| | `pretest` → `typecheck:tests`, en de exacte commando's | `package.json` scripts | | CI draait `npm run typecheck` + `npm run test` | `.forgejo/workflows/ci.yml` | | `include` van beide configs | `tsconfig.json`, `tsconfig.type-tests.json` | | Beide helpers bestaan op de genoemde paden | `__tests__/helpers/` | ## Merge-volgorde Geen harde afhankelijkheid, maar let op de overlap: `fix/integration-tests-serieel` heeft een ongemergde commit die een `### Integration tests need a database`-subsectie toevoegt in dezelfde `## Testing`-sectie. Die voegt regels toe ná het codeblok; deze PR wijzigt het codeblok zelf en hangt de nieuwe subsectie onderaan. De gewijzigde regels overlappen dus niet, maar bij een merge-conflict is dat de plek om te kijken. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
docs(testing): documenteer dat testbestanden een eigen typecheck-config hebben
All checks were successful
CI / Verify (pull_request) Successful in 1m58s
ec4a76494f
De Testing-sectie noemde alleen `npm test` en `npm run typecheck` en suggereerde
daarmee dat die twee samen de repo dekken. Sinds #101/#102 is dat onvolledig:
`tsconfig.json` include't alleen src/**/*, en `tsconfig.type-tests.json` dekt
__tests__/**/* via `pretest`.

Toegevoegd:
- het codeblok noemt nu alle drie de commando's met hun werkelijke scope;
- een tabel met de twee configs en hoe ze draaien;
- waarom de split bestaat (vitest transpileert zonder typecheck, dus een
  typefout in een test wordt groen) en de regel dat de `include` een glob moet
  blijven, zodat nieuwe testbestanden automatisch gedekt zijn;
- de twee gevolgen die je bij het schrijven van tests tegenkomt — `toolText()`
  voor de CallToolResult-unie en `AnyMock` voor de vitest-4 vi.fn-overload — en
  de NodeNext-.js-regel, met verwijzing naar de product-doc voor de details.

Docs-only: de diff raakt uitsluitend CLAUDE.md. Alle genoemde feiten
geverifieerd tegen package.json, .forgejo/workflows/ci.yml, beide tsconfigs en
__tests__/helpers/.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
janpeter/scrum4me-mcp!104
No description provided.