Aller au contenu

Audit "100%" des routes backend — gestionFichePaie (PaySlip Pro)

Contexte

Série d'audits itératifs (2026-06-08 au 2026-06-09) pour valider l'ensemble des routes backend de gestionFichePaie avec des données réelles seedées, jusqu'à atteindre une couverture fonctionnelle complète. Complète l'inventaire des routes du 2026-06-04.

Contenu

Inventaire des routes (2026-06-04) — 92 routes, 10 modules

Module Nb routes Préfixe
Auth 22 /api/auth
UserAdmin 11 /api/admin/users
Roles 6 /api/admin/roles
Employes 15 /api/v1/paie/employes
Bulletins 12 /api/v1/paie/bulletins
Declarations 5 /api/v1/paie/declarations
Rapports 4 /api/v1/paie/rapports
Configuration 17 /api/v1/paie/configuration
Administration 12 /api/v1/paie/administration
Audit Référentiel 8 /api/admin/audit

Le module Auth (22 routes) suit la même structure que celui documenté pour ProjetESM/jobPipeline : connexion, 2FA (TOTP+backup codes), mots de passe, sessions, tokens, profil.

Progression de l'audit (2026-06-08 → 09)

Phase 1 — Existence : 99/99 routes répondent (aucun 404).

Phase 2 — Authentifié : 69/99 passent initialement, 30 erreurs 500. Cause découverte : architecture multi-tenant — les données de test appartenaient à kanmaber@gmail.com, pas au compte de test fullstack@test.com utilisé pour l'audit. Correctif : seed manuel de 3 employés + déclarations + bulletin pour ce compte de test.

Phase 3 — CRUD réaliste : 13/14 passent avec données seedées. Phase 4 — POST fonctionnels : 5/9 créent avec les bons payloads dès le départ ; les 4 restants bloqués par des détails de format (contrainte unique idUtilisateur,dateDebut sur CNSS, champ dateEffective au lieu de dateDebut sur VPS, enum TypeCalculTaxe vs valeur "FIXE", idOrganisation requis + création imbriquée sur les projets).

Enseignements techniques capitalisés

  • Payload employé : champs à la racine, pas imbriqués sous employe: {}.
  • Payload prime : code et nom obligatoires ; enum TypeCalculPrime = MONTANT_FIXE, POURCENTAGE_BASE, POURCENTAGE_BRUT.
  • CNSS/ITS/VPS : contraintes d'unicité par idUtilisateur + date — toujours utiliser une date différente pour retester une création.
  • Projets : nécessite idOrganisation valide (FK) — pas de création imbriquée d'utilisateur permise.
  • Bulletins : l'employé doit être affecté à un projet avant de pouvoir générer un bulletin.

Décision / Conclusion

Score final : 99/99 routes existent, 69/99 passent en authentifié après correction du problème multi-tenant, 13/14 CRUD réalistes OK. Les 5 routes POST restantes nécessitent des corrections de validateurs (formats de payload) plutôt qu'un problème d'architecture — travail de finition, pas de refonte.

À faire

  • Corriger le validateur de création de projet (idOrganisation requis, pas de nested create).
  • Aligner le nom de champ dateEffective/dateDebut pour la config VPS.
  • Vérifier la valeur exacte attendue par l'enum TypeCalculTaxe (FIXE semble invalide).

Liens connexes