Stratégie de tests de l'application ISI-APP : organisation, commandes et patterns principaux.
ISI-APP utilise PHPUnit 12 comme framework de test unique. La suite compte plus de 1 100 tests couvrant l'authentification, les accès, les middlewares et les fonctionnalités métier. Les tests s'exécutent sur une base de données MySQL dédiée avec rollback automatique entre chaque test (aucune donnée persistée).
Les tests sont réservés aux développeurs. Ils s'exécutent en ligne de commande depuis la racine du projet.
| Commande | Usage |
|---|---|
php artisan test --compact |
Lancer toute la suite |
php artisan test --compact --filter=NomDuTest |
Lancer un seul test |
php artisan test --compact tests/Feature/MonFichier.php |
Lancer un fichier |
Avant de finaliser : vendor/bin/duster fix --dirty pour formater le code.
Les tests sont organisés en deux suites :
tests/Unit/) — tests unitaires isoléstests/Feature/) — tests fonctionnels avec requêtes HTTPChaque domaine dispose de son propre dossier : Auth/, Store/, etc.
Tous les tests nécessitant un utilisateur connecté utilisent le trait AuthenticatesUser qui expose trois méthodes : createTestUser() (crée un utilisateur de test), loginTestUser() (POST sur /login) et setupTestSession() (construit la session directement sans passer par le flow de connexion).
| Fonctionnalité | Ce qui est testé |
|---|---|
| Liste / tableau | Tri, recherche, pagination, filtres |
| Création | Formulaire rempli → enregistrement en base, modal fermée, liste rafraîchie |
| Modification | Formulaire pré-rempli → mise à jour en base, soft delete respecté |
| Suppression | Confirmation SweetAlert → dtdel mis à jour, élément masqué de la liste |
| Export | Fichier généré (Excel / PDF), format valide |
| Import | Prévisualisation correcte, changements appliqués après confirmation |
| Filtres | Résultats cohérents avec les options sélectionnées |
| Multi-tenant | Seules les données du tenant courant sont visibles |
| ACL | Les utilisateurs sans droit ne voient rien ou obtiennent une erreur 403 |
.claude/technical-docs/dev/tests.md.claude/technical-docs/dev/test-patterns-quick-ref.md