test(typecheck): verbreed typecheck naar alle testbestanden (179/180) #101
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "claude/awesome-rosalind-7b450b"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Aanleiding
Testbestanden werden vrijwel niet getypecheckt.
tsconfig.jsoninclude't alleensrc/**/*, entsconfig.type-tests.jsonwas gescoped op precies één bestand. Vitest transpileert zonder typecheck, dus een typefout in eender welk ander testbestand kwam ongemerkt door CI.Meting vóór de wijziging
tsc --noEmitmet een tijdelijke config oversrc/**/*+__tests__/**/*: 54 fouten in 16 bestanden, allemaal in__tests__/, nul insrc/.dispatch-job.test.tsupdate-idea-grill-md-product.test.tsidea-plan-loop.test.tsdeploy-eligibility.test.tsupdate-idea.test.tscreate-transaction.test.tsdeploy-dispatch.test.tsworker-instance-id.test.tscreate-idea.test.tstools/get-review.test.tsget-job-status.test.tssend-idea-chat-message.test.tswait-for-job-runtime-claim.test.tsrealtime-payload-contract.test.tsverify-task-against-plan.test.tsqueue-listen.test.tsPer code: 29× TS2339, 10× TS2571, 3× TS2348, 3× TS2345, 2× TS2835, 2× TS2493, 2× TS18046, 1× elk TS2532/TS2352/TS2307.
De
src/presence/worker.ts-fouten uit de config-comment bestaan niet meerDrie onafhankelijke bevestigingen: de verbrede run geeft 0 fouten in
src/;npm run typecheckis schoon; ensrc/presence/worker.tsheeft geen commits sinds de config werd toegevoegd (2026-06-07,00b92bf). Ook met de gegenereerde Prisma-client weggehaald geeft dat bestand nul fouten. De smalle scope was dus niet langer nodig.Wat er is gewijzigd
Alle 54 opgelost, zonder productiecode aan te raken — de diff bevat alleen
__tests__/entsconfig.type-tests.json. Dekking nu 179 van de 180.ts-bestanden onder__tests__/.__tests__/helpers/tool-result.ts— narrowt deCallToolResultcontent-unie (28 sites in 6 bestanden). Alleen handlers die met dat SDK-type geannoteerd zijn hadden dit nodig; handlers met een afgeleid object-literal niet.__tests__/helpers/mocks.ts—AnyMock, omdatReturnType<typeof vi.fn>onder vitest 4 de niet-aanroepbare unieMock<Procedure | Constructable>oplevert. Alleen de sites die de mock echt aanroepen zijn omgezet, niet het hele idioom (310 gebruiken in 84 bestanden)..js-extensies. Inrealtime-payload-contract.test.tskon TS de module daardoor helemaal niet resolven — die contracttest controleerde dus niets.deploy-dispatch,deploy-eligibility,create-transactionenworker-instance-id.EventEmitter.getEventListenersi.p.v. de module-level export: alleen de statische variant is getypeerd in@types/nodev22, beide bestaan runtime (geverifieerd).Eén gedocumenteerde carve-out
realtime-payload-contract.test.tsblijft buiten de config. Mét de juiste.js-extensie resolvet de import wél, en dan blijktvendor/scrum4me-shared/lib/realtime-payload.tszélf extensieloze relatieve imports te gebruiken (4× TS2835) — het enige vendored bestand met dat probleem, ensrc/importeert het nergens. Dat is een aparte repo, dus reden en echte fix staan intsconfig.type-tests.json: extensies toevoegen in scrum4me-shared, submodule-pointer bumpen, dan die regel weghalen.Gesignaleerd, niet gewijzigd
PlanReviewLog.roundsisunknown[]insrc/lib/idea-plan-loop.ts— oorzaak van 10 van de 54 fouten. Hier test-side genarrowd; het netjes typen in src is de betere fix, maar dat is productiecode.Verificatie
npm run typecheck— schoonnpm run typecheck:tests— schoon, nu over 179 bestanden i.p.v. 1npm test— 176 passed | 2 skipped (178 bestanden); 1317 tests passed, 20 skipped. De 2 overgeslagen bestanden zijn de bestaandeTEST_DATABASE_URL-gated integratietests.CI heeft geen wijziging nodig: die draait
npm run typecheckennpm run test, enpretesttrekt de verbrede config mee.Acceptatie-probe: tijdelijk een verplicht veld toegevoegd aan
registerShutdownHandlers→typecheck:testsgaf 5× TS2345 in__tests__/presence-shutdown.test.ts, daarna schoon teruggedraaid. De regressie die eerder stil doorkwam, wordt nu gevangen.Follow-up: de carve-out voor
realtime-payload-contract.test.tswordt opgeheven in een aparte PR (submodule-bump naar janpeter/scrum4me-shared#43), nadat #43 gemerged is. Deze PR bevat die bump niet.🤖 Generated with Claude Code
test(typecheck): verbreed typecheck naar alle testbestanden (179/180)to test(typecheck): verbreed typecheck naar alle testbestanden (180/180)test(typecheck): verbreed typecheck naar alle testbestanden (180/180)to test(typecheck): verbreed typecheck naar alle testbestanden (179/180)