test(front): étend la couverture de 8 à 41 tests
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.
This commit is contained in:
@@ -1,9 +1,7 @@
|
||||
import {
|
||||
createService, updateService, deleteService,
|
||||
createCategorie, updateCategorie, deleteCategorie,
|
||||
createContact, updateContact, deleteContact,
|
||||
createMonitoring, updateMonitoring, desactiverMonitoring,
|
||||
} from '../../services/api';
|
||||
/* Les appels API sont référencés via l'espace de noms et résolus au moment de
|
||||
l'appel, et non capturés à l'import : la configuration ne fige donc pas une
|
||||
implémentation, ce qui la découple du module d'API. */
|
||||
import * as api from '../../services/api';
|
||||
|
||||
/* Description déclarative des 4 référentiels administrables.
|
||||
Les colonnes du tableau, les champs du formulaire et les appels API sont
|
||||
@@ -31,9 +29,9 @@ export const REFERENTIELS = [
|
||||
{ name: 'table_source', label: 'Table source', type: 'text', required: true },
|
||||
{ name: 'bdd_source', label: 'Base source', type: 'text', required: true },
|
||||
],
|
||||
creer: createMonitoring,
|
||||
modifier: updateMonitoring,
|
||||
supprimer: desactiverMonitoring,
|
||||
creer: body => api.createMonitoring(body),
|
||||
modifier: (id, body) => api.updateMonitoring(id, body),
|
||||
supprimer: id => api.desactiverMonitoring(id),
|
||||
},
|
||||
{
|
||||
key: 'services',
|
||||
@@ -42,9 +40,9 @@ export const REFERENTIELS = [
|
||||
idField: 'id_service',
|
||||
colonnes: [{ key: 'nom_service', label: 'Nom' }],
|
||||
champs: [{ name: 'nom_service', label: 'Nom du service', type: 'text', required: true }],
|
||||
creer: createService,
|
||||
modifier: updateService,
|
||||
supprimer: deleteService,
|
||||
creer: body => api.createService(body),
|
||||
modifier: (id, body) => api.updateService(id, body),
|
||||
supprimer: id => api.deleteService(id),
|
||||
},
|
||||
{
|
||||
key: 'categories',
|
||||
@@ -53,9 +51,9 @@ export const REFERENTIELS = [
|
||||
idField: 'id_categorie',
|
||||
colonnes: [{ key: 'intitule_categorie', label: 'Nom' }],
|
||||
champs: [{ name: 'intitule_categorie', label: 'Intitulé', type: 'text', required: true }],
|
||||
creer: createCategorie,
|
||||
modifier: updateCategorie,
|
||||
supprimer: deleteCategorie,
|
||||
creer: body => api.createCategorie(body),
|
||||
modifier: (id, body) => api.updateCategorie(id, body),
|
||||
supprimer: id => api.deleteCategorie(id),
|
||||
},
|
||||
{
|
||||
key: 'contacts',
|
||||
@@ -76,9 +74,9 @@ export const REFERENTIELS = [
|
||||
{ name: 'mail', label: 'Email', type: 'email', required: true },
|
||||
{ name: 'id_service', label: 'Service', type: 'select', options: 'services', required: true },
|
||||
],
|
||||
creer: createContact,
|
||||
modifier: updateContact,
|
||||
supprimer: deleteContact,
|
||||
creer: body => api.createContact(body),
|
||||
modifier: (id, body) => api.updateContact(id, body),
|
||||
supprimer: id => api.deleteContact(id),
|
||||
},
|
||||
];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user