metalfrom.eu/apps/api/test
Nicolas FRYDER a5de45dd9f refactor(api): brancher validate.js, qui était du code mort bien testé
Huit des douze exports de validate.js n'étaient appelés nulle part en
production : app.js et adminRoutes.js réimplémentaient la même validation à la
main, trois fois. Les 64 cas de validate.test.js et validate.property.test.js
garantissaient donc une implémentation qui ne tournait nulle part — le score de
mutation de 90 % portait sur du code inatteignable.

Une divergence s'était déjà installée sans que rien ne rougisse : parseMaId
exige un entier là où le contrôle en ligne se contentait de Number.isFinite.
/api/band/1.5 était accepté et partait en base pour ne rien trouver ; il répond
désormais 400.

Les routes délèguent maintenant à parseBbox, parseZoom, cellSizeForZoom,
parseCsvList, parseYear, parseLat, parseLon et parseMaId. Aucun test existant
n'a bougé, ce qui confirme que le comportement est identique partout ailleurs.

Ajoute validateWiring.test.js, qui échoue si un helper cesse d'être branché. Il
ne dit rien de sa qualité — c'est le rôle des deux autres fichiers — seulement
qu'il est réellement sur le chemin d'exécution. C'est exactement le garde-fou
qui manquait pour que la dérive ne recommence pas.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-22 14:45:54 +02:00
..
helpers feat(qualité): outillage de test complet, CI locale, annulation réelle des runs 2026-08-18 10:05:40 +02:00
integration refactor: module de santé partagé, supervision complète, endpoints morts traités 2026-08-22 14:41:59 +02:00
adminAuth.test.js fix(sécurité): verrouillage de compte détournable, et Vary manquant sur le CORS 2026-08-22 14:24:33 +02:00
adminRoutes.test.js fix(admin): passe de debug guidée par la mutation — 4 bugs, mutation 64 → 68 % 2026-08-18 15:42:52 +02:00
adminRoutesCoverage.test.js refactor: module de santé partagé, supervision complète, endpoints morts traités 2026-08-22 14:41:59 +02:00
bandFilters.test.js fix(admin): passe de debug guidée par la mutation — 4 bugs, mutation 64 → 68 % 2026-08-18 15:42:52 +02:00
cancellation.test.js feat(qualité): outillage de test complet, CI locale, annulation réelle des runs 2026-08-18 10:05:40 +02:00
conflicts.test.js fix(admin): passe de debug guidée par la mutation — 4 bugs, mutation 64 → 68 % 2026-08-18 15:42:52 +02:00
harness.test.js feat(qualité): outillage de test complet, CI locale, annulation réelle des runs 2026-08-18 10:05:40 +02:00
locations.test.js fix: sync du point principal + verrou de migration, redis mort retiré, tests par propriétés 2026-08-18 21:03:17 +02:00
publicRoutes.test.js perf(api): compression des réponses, et troncature de la carte enfin signalée 2026-08-22 14:35:12 +02:00
publicRoutesCoverage.test.js feat(qualité): outillage de test complet, CI locale, annulation réelle des runs 2026-08-18 10:05:40 +02:00
rateLimit.test.js fix(sécurité): plafond de /admin/import contournable en variant le jeton 2026-08-22 13:15:12 +02:00
sqlSyntax.test.js refactor: module de santé partagé, supervision complète, endpoints morts traités 2026-08-22 14:41:59 +02:00
validate.property.test.js fix: sync du point principal + verrou de migration, redis mort retiré, tests par propriétés 2026-08-18 21:03:17 +02:00
validate.test.js feat(qualité): outillage de test complet, CI locale, annulation réelle des runs 2026-08-18 10:05:40 +02:00
validateWiring.test.js refactor(api): brancher validate.js, qui était du code mort bien testé 2026-08-22 14:45:54 +02:00