metalfrom.eu/apps/api
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
..
migrations feat(schéma): contraintes de domaine sur les statuts, purge, table morte retirée 2026-08-22 14:26:31 +02:00
src refactor(api): brancher validate.js, qui était du code mort bien testé 2026-08-22 14:45:54 +02:00
test refactor(api): brancher validate.js, qui était du code mort bien testé 2026-08-22 14:45:54 +02:00
.dockerignore feat(qualité): outillage de test complet, CI locale, annulation réelle des runs 2026-08-18 10:05:40 +02:00
Dockerfile chore(infra): en-têtes de sécurité, conteneurs non-root, retrait de pgAdmin 2026-08-20 16:44:26 +02:00
package-lock.json feat(admin): dashboard admin complet (auth forte, API, monitoring) 2026-06-30 22:15:13 +02:00
package.json perf(api): compression des réponses, et troncature de la carte enfin signalée 2026-08-22 14:35:12 +02:00