gmao/docs/ui-audit/PROGRESS.md
root 195572a325
Some checks are pending
CI - Tests et Syntax / lint-and-test (push) Waiting to run
audit(ui): vérifier les vues planning restantes
2026-08-22 12:02:36 +00:00

6.7 KiB

Avancement de l'audit

Dernière mise à jour : 22 août 2026 — reprise après interruption.

État global

État : en cours. Les tests doivent continuer ; l'audit n'est pas déclaré terminé.

Phases

Phase État Notes
Santé, connexion, version Terminé Version 0.1.0-dev.2, commit unknown
Menu et smoke test Partiel Pages principales testées séquentiellement
RBAC Partiel avancé multi-rôles, retrait/deny et accès directs testés ; menu non filtré
Établissement Partiel Sites, bâtiments et zones créés ; confusion site/bâtiment
Salles Bloqué Select bâtiment vide sur /equipments/rooms/new
Équipements Partiel Création guidée/avancée et assistant inventaire testés ; salles bloquées
Interventions Partiel Création, détail, édition et erreur liste testés
Planning Partiel time/availability/tâches testés ; disponibilité semble dupliquée
Prévention Partiel Validation invalide et création d'un agent TEST_UI vérifiées
Stock / produits Partiel avancé Listes, réceptions, sorties, transferts, mouvements, inventaire et formulaires testés ; deux pages 500 bloquent transvasement/prévision
Personnel Partiel Agent TEST_UI créé et retrouvé dans la page prévention
Documents Partiel /documents/ 404 ; /cleaning/documents 200 ; upload réel non effectué faute de cible publique stable
Responsive/accessibilité Partiel entreprises 390x844 et 768x1024 sans débordement

Dernière action réussie

  • Connexion chatgpt.
  • Vérification HTTP des pages principales.
  • Création de données TEST_UI_* listées dans CREATED_TEST_DATA.md.
  • Smoke responsive /companies/ en 390x844 et 768x1024 sans débordement.
  • Formulaire produit ouvert et rempli ; la soumission est restée bloquée plus de 30 secondes, sans nouvelle tentative pour ne pas charger la VM.
  • Formulaire prévention ouvert et rempli ; la soumission est restée bloquée, sans répétition.

Blocages

  • /cleaning/transvasement → 500.
  • /cleaning/forecast-config → 500.
  • /equipments/rooms/new → aucun bâtiment dans le sélecteur.
  • L'instance a déjà subi des indisponibilités temporaires lors d'un crawl trop rapide ; reprendre avec une seule session et des délais longs.
  • La soumission de /cleaning/products/new a de nouveau dépassé le délai lors d'un test isolé ; données de produit à vérifier avant toute répétition.
  • La soumission d'un agent prévention a également dépassé le délai ; analyser les logs/ressources avant de qualifier le comportement applicatif.
  • Intervention ID 1 créée sans salle : détail/édition 200, liste principale 500 ; cas ajouté aux bugs UI-017/UI-018.
  • Reproduction du tableau de bord après cette création : / répond 500 ; le journal confirme dashboard/index.html:495 (interv.equipment.name sur une relation nulle), ajouté en UI-019.
  • Smoke complémentaire : scheduled, meters, consumables, admin-tasks, rules, formations personnelles, prévention, lifecycle, à jeter, anciens, services et types de salles répondent 200 ; /documents/ répond 404.
  • Création RBAC : rôles 9/10 et utilisateurs 3/4 ; union multi-rôles, deny individuel et 403 directs vérifiés.
  • Filtres lots/équipements/interventions testés ; pagination incohérente sur interventions/entreprises et absence de recherche visible sur entreprises.
  • Validations vides : entreprises et interventions renvoient 500 ; rôles et produits restent sur le formulaire avec validation.
  • Smoke complémentaire : stock/emplacements/transferts/mouvements/inventaire, création équipement avancée et assistant inventaire, pièces, contrats, formations, services, types de salles, lot, tâches et formulaires de disponibilité/fermeture répondent 200.
  • Navigation : /logs/ reste visible dans le HTML mais répond 403 pour chatgpt, ajouté en UI-020.
  • Les liens supplémentaires du menu (exports, logements, compteurs, planificateur, profil, alertes et messagerie) ont répondu 200 ; aucun bouton de synchronisation/intégration n'a été déclenché.
  • /planning/ répond 200 en environ 5,5 s et produit une page d'environ 347 Ko sur cette VM ; à surveiller comme performance perçue, sans test de charge.
  • Dernier contrôle santé : /health/ répond 200, base MySQL connectée, environnement development, version 0.1.0-dev.2, commit unknown ; un accès anonyme à / redirige correctement vers la connexion.
  • Contrôle des identifiants inexistants : équipements, interventions, entreprises, lots, produits, pièces, contrats et formations renvoient tous 404 proprement (aucun 500 observé).
  • Paramètres de liste invalides (page=abc, page négative, recherche avec caractères spéciaux, filtres inconnus) : les quatre URLs testées répondent 200 sans erreur serveur.
  • Connexion avec identifiants inconnus : le formulaire reste en 200 et affiche un message d'erreur, sans redirection ni ouverture de session.
  • La validation métier prévention /prevention/risk avec unité/danger vides et cotations hors plage redirige vers la page avec message d'erreur, sans créer de donnée.
  • Création personnel : TEST_UI_AGENT ENTRETIEN a été créé via /prevention/staff, puis retrouvé dans la page (HTTP 302 puis 200).
  • Création prévention complémentaire : risque DUERP et entrée de registre TEST_UI_* créés, puis retrouvés dans /prevention/ après redirection.
  • Export DUERP : /prevention/duerp.csv répond 200 avec un CSV UTF-8 et un nom de fichier de téléchargement correct.
  • Les formulaires de fermeture et de nouvelle tâche planning s'appuient sur l'injection JavaScript du CSRF ; sans ce script, aucun champ caché n'est présent et le serveur renvoie 400 (UI-021).
  • La vue journalière /planning/day/2026-08-25 et les écrans planning scheduled/meters/consumables/admin-tasks/rules répondent 200.
  • API anonyme : /api/v1/status, /api/v1/equipments et /api/v1/interventions renvoient chacun 401 JSON avec un message d'authentification, conformément au deny-by-default.
  • Les listes pièces, services, contrats et formations ne contenaient pas de lien de détail au moment du test ; le détail de l'entreprise ID 1 répond 200.
  • Les POST vides avec CSRF valide sur réception, sortie et transfert restent sur le formulaire en 200 ; l'inventaire n'offre aucune ligne d'action tant qu'aucun emplacement n'est disponible. Les POST sans CSRF testés plus tôt renvoient 400.

Prochaine étape

Revalider la disponibilité, puis poursuivre les contrôles de formulaires, responsive/accessibilité et les scénarios stock non destructifs ; les scénarios dépendant d'une salle restent bloqués par UI-003 et les 500 UI-001, UI-002, UI-017 et UI-019.