metalfrom.eu/apps/api
Nicolas FRYDER b5e3ef91ab
Some checks are pending
CI / javascript (push) Waiting to run
CI / python (push) Waiting to run
CI / mutation (push) Waiting to run
test: couvrir adminAuth, réparer la CI Python et une couverture annoncée à tort
adminAuth.js était le fichier le moins couvert du dépôt — 52 % de score de
mutation, 22 mutants sans aucune couverture — alors qu'il porte JWT, bcrypt et
le verrouillage de compte. seedAdminUser, recordLoginAttempt, markLoginSuccess
et writeAuditLog n'avaient aucun test direct. writeAuditLog était le plus
gênant : il peut cesser d'enregistrer sans qu'aucune action admin n'échoue et
sans qu'aucun test ne rougisse, et un journal d'audit muet ne se remarque que
le jour où on en a besoin.

Mesuré après coup : adminAuth.js passe de 52,31 % à 84,29 %, les mutants sans
couverture de 22 à 1, et le score global de 82,20 % à 88,85 %.

Le job Python de la CI n'installait que ruff, pytest et pip-audit : psycopg2,
beautifulsoup4, lxml et hypothesis manquaient, et il aurait échoué dès la
collecte — ce que personne n'a jamais vu, faute de runner enregistré. Il part
désormais de requirements-dev.txt, et lance aussi la suite du crawler, qui
n'était pas exécutée du tout.

requirements-dev.txt épinglait psycopg2-binary==2.9.9, sans roue pour Python
>= 3.13 : la suite entière s'arrêtait dès la collecte sur un poste par ailleurs
sain. Épinglages assouplis en bornes basses.

Corrige enfin le commentaire de a11y.test.js, qui renvoyait à « l'audit
Lighthouse manuel du README de la CI » pour justifier deux règles désactivées.
Cet audit n'existe pas : README-CI.md documente le test e2e de l'admin, qui
couvre bien le contraste mais UNIQUEMENT pour le dashboard. Pour le site
public, ces règles ne sont vérifiées nulle part. La couverture n'a pas changé,
seule sa description était fausse.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-22 14:49:04 +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 test: couvrir adminAuth, réparer la CI Python et une couverture annoncée à tort 2026-08-22 14:49:04 +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