Les fonctionnalités ajoutées récemment n'étaient couvertes par aucun test,
et deux utilitaires historiques ne l'avaient jamais été.
- statutMonitoring : bornes du seuil testées de part et d'autre, là où une
confusion entre < et <= se verrait.
- dates : protège la correction du décalage de fuseau (toISOString basculait
en UTC, le 1er janvier local devenait le 31 décembre). Les helpers sont
sortis de Historique.jsx vers utils/dates.js, un fichier de composant ne
pouvant pas exporter autre chose sans casser le rafraîchissement à chaud.
- exportToCSV : échappement des virgules, guillemets et sauts de ligne, et
conservation du zéro, qui est falsy alors que « 0 erreur » est justement
l'information utile. Cet utilitaire sert quatre écrans et n'avait aucun test.
- Dashboard : les menus ne proposent que les valeurs ayant des résultats, les
catégories se restreignent au service choisi, et une catégorie devenue sans
résultat est réinitialisée. Vérifié par mutation : casser la cascade fait
bien échouer deux tests.
- Admin : création, modification pré-remplie, confirmation avant suppression,
remontée du refus 409 de l'API, désactivation et non suppression d'un
monitoring, affichage des libellés à la place des identifiants.
Corrige un défaut révélé par ces tests : referentielsConfig capturait les
fonctions de l'API à l'import, figeant l'implémentation. Elles sont désormais
résolues à l'appel, ce qui découple la configuration du module d'API.
Le dépôt sortait 7 erreurs eslint au début de cette série de correctifs,
dont certaines antérieures. Il n'en reste aucune.
- Dashboard et Users appelaient setState de façon synchrone dans un
effet, ce qui provoque des rendus en cascade. Le chargement initial
passe par une fonction asynchrone qui n'écrit qu'après l'await, avec
annulation au démontage. Sur le Dashboard, l'indicateur de chargement
est allumé par les gestionnaires d'événement, et le bouton Actualiser
relance l'effet via un compteur plutôt qu'en appelant le chargement.
- L'import ExternalLink de Documentation.jsx n'était pas utilisé.
- AuthContext.jsx exportait à la fois un composant, le contexte et un
hook, ce qui désactivait le rafraîchissement à chaud de Vite pour ce
fichier. Le contexte et le hook vivent désormais dans leurs propres
modules ; les 5 fichiers concernés sont mis à jour.