Appearance
Tests (front et back)

Chaque ticket suit ce cycle : ticket Jira → branche Git → Pull Request → Lint + Tests → Docs à jour → Done.
Ce dépôt distingue tests unitaires (comportement isolé, mocks) et tests fonctionnels (chaîne complète : HTTP côté API, navigateur côté front).
| Couche | Unitaire | Fonctionnel |
|---|---|---|
| Front | Vitest + jsdom | Playwright (navigateur réel) |
| Back | Jest (Node) | Jest + Supertest (HTTP sur l’app Nest) |
Les détails d’auth et de base pour le back sont dans docs/dev/back/auth.md et docs/dev/back/database.md.
Conditions réelles (hors mocks)
Playwright (mode auth réelle) : le navigateur enchaîne le portail
AUTH, le callback BDD et l’API BDD. Il faut donc que le back soit démarré et joignable avec la mêmeBASE_URLque côté front (souventhttp://localhost:3000). Le front est en principe lancé par Playwright viawebServer(yarn devdansplaywright.config.js).E2E API back (
yarn test:e2e) : Nest est monté dans le processus Jest ; un second terminal avecyarn startn’est en général pas nécessaire. Les cas d’authBDDutilisent maintenant desapp_access_tokensignés localement, sans login réel via le portail AUTH.
Front
Tests unitaires (Vitest)
Où : sous
front/src/__tests__/, en miroir de la structure desrc/(composants, pages, stores, router, etc.).Convention : fichiers
*.spec.js.Commande : depuis
front/:bashyarn testConfig :
front/vitest.config.js(fusion avec la config Vite, environnementjsdom). Le dossierfront/e2e/est exclu des tests unitaires pour ne pas mélanger avec Playwright.
Les tests ciblent des unités fines (composants Vue, Pinia, garde de routes) sans lancer le serveur de dev.
Couverture unitaire utile actuelle autour de l auth :
AuthCallbackPage.spec.js- callback avec acces refuse
- restauration locale via
app_access_token
App.spec.js- protection des routes non publiques
- redirection si le jeton applicatif manque
stores/auth-store.spec.js- validation locale du
app_access_token - logout local et invalidation de cache
- validation locale du
Tests fonctionnels (Playwright)
Où :
front/e2e/, fichiers*.spec.js.Commande : depuis
front/:bashyarn test:e2eVariantes utiles en local :
yarn test:e2e:ui,yarn test:e2e:headed. Première installation des navigateurs :yarn test:e2e:install.Comportement :
playwright.config.jsdémarreyarn dev(sauf si une instance tourne déjà en local non-CI) et utiliseFRONT_URLcommebaseURL(voirfront/.env.example). En CI,reuseExistingServerest désactivé : prévoir un port libre et la même URL que celle attendue par la config.Auth réelle (optionnel) : certains scénarios ne s’exécutent que si
E2E_REAL_AUTHest activé (1,trueouyes) et queE2E_TEST_USER_EMAIL/E2E_TEST_USER_PASSWORDsont renseignés. Les variables sont chargées depuis la racinefront/(fichier.env+ pas de dépendance aucwddes workers Playwright). Sans cette configuration, les tests concernés sont ignorés (skip).
Parcours suivis et backlog Playwright :
- Voir
docs/dev/front/playwright.md - Les specs actuelles couvrent : smoke public, login, mot de passe oublié, upload, gestion d acces au callback, dossiers admin (BDD-21) et pagination des fichiers d un dossier admin (BDD-37).
- Les prochains cas prioritaires à garder verts sont :
- préservation de
redirectaprès login - gestion d un
401pendant l hydratation utilisateur - logout automatique sur session invalide en navigation protégée
- non-régression du dépôt après authentification réelle
- consultation des fichiers déposés après connexion
- rafraîchissement de la liste après un upload réussi
- téléchargement d'un fichier déposé avec conservation du nom original
- copie d'un lien sécurisé vers un fichier déposé
- pagination de
/admin/foldersavec filtres et recherche - création d un dossier depuis une entreprise éligible (
/folders/enterprises,hasFolder) - flux réel
AUTH -> BDDavecapp_access_token
- préservation de
- Les specs admin nécessitent
E2E_TEST_ADMIN_EMAIL/E2E_TEST_ADMIN_PASSWORDen plus des variables client.
Back
Tests unitaires (Jest)
Où : à côté du code dans
back/src/, fichiers*.spec.ts(ex.user.service.spec.tsà côté deuser.service.ts).Commande : depuis
back/:bashyarn testVariantes :
yarn test:watch,yarn test:cov.Config : section
jestdeback/package.json(rootDir: src,testRegex: .*\.spec\.ts$, aliassrc/*).
Ces tests mockent les dépendances (Prisma, HTTP externe) pour valider la logique des services, guards, handlers d’exceptions, etc.
Couverture utile actuelle autour de l auth :
authGuard.spec.tsX-App-Access-Tokenabsent- jeton applicatif invalide
- jeton applicatif ne ciblant pas
bdd - chargement du profil local et du role
Tests fonctionnels / E2E API (Jest + Supertest)
Où :
back/test/e2e/, fichiers*.e2e-spec.ts(ex.app-controller.e2e-spec.ts,users-controller.e2e-spec.ts).Commande : depuis
back/:bashyarn test:e2eConfig :
back/test/jest-e2e.json(rootssurtest/e2e, résolutionsrc/*versback/src).
Ces tests montent l’application Nest et envoient de vraies requêtes HTTP. Ils vérifient le contrat des endpoints (statuts, corps) sans navigateur.
- Auth BDD : les specs E2E backend
BDDsignent unapp_access_tokende test avecAPP_ACCESS_TOKEN_SECRET. Il suffit donc d’avoir une config backend cohérente (APP_ACCESS_TOKEN_SECRET,APPLICATION,ENVIRONMENT, base tool accessible).
Récapitulatif des commandes
| Contexte | Type | Commande (répertoire) |
|---|---|---|
| Front | Unitaire | front/ → yarn test |
| Front | Fonctionnel | front/ → yarn test:e2e |
| Back | Unitaire | back/ → yarn test |
| Back | E2E API | back/ → yarn test:e2e |
Bonnes pratiques (équipe)
- Garder les tests unitaires rapides et déterministes ; isoler le réseau et la base avec des mocks.
- Réserver les tests fonctionnels aux parcours critiques (routes protégées, login, endpoints d’intégration) pour limiter le temps d’exécution et la fragilité (ports, services externes).
- Pour l’auth réelle en local ou CI, documenter les secrets dans
.env.examplesans valeur sensible ; ne jamais committer de mots de passe.
