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.
Les boutons Modifier et Désactiver de la page Administration
n'appelaient rien : handleDelete se contentait d'un console.log et le
bouton Enregistrer de la modale ne faisait que la refermer. L'écran
donnait l'illusion d'un CRUD.
Branche les 4 onglets sur les endpoints POST/PUT/DELETE ajoutés côté
API, avec confirmation avant suppression, rechargement après
enregistrement et remontée des erreurs de l'API (dont le refus 409
quand des enregistrements sont rattachés).
Les 4 blocs de colonnes de tableau, quasi identiques d'un onglet à
l'autre, laissent place à une description déclarative
(referentielsConfig.js) : un seul tableau et un seul formulaire
générique (ReferentielForm) servent les 4 référentiels. Les colonnes
qui portaient un identifiant brut affichent maintenant le libellé.
La modale, jusqu'ici déclarée dans Admin.jsx, devient un composant
commun réutilisable.