2026-02-14 13:04:14 +00:00
# E2E Tests — Parcours critiques et fichiers
Ce document liste les parcours critiques couverts par les tests E2E Playwright et les fichiers associés.
2026-02-15 13:51:29 +00:00
## Parcours critiques (Audit 2.10)
2026-02-14 13:04:14 +00:00
| Parcours | Fichier(s) | Description |
|----------|------------|-------------|
| **Auth** | `tests/auth.spec.ts` | Login, register, logout, route guards, token refresh. Optionnel : 2FA (compte test dédié). |
2026-02-15 13:51:29 +00:00
| **Upload** | `tests/upload.spec.ts` | Upload fichier, upload par chunks. |
| **Purchase** | `tests/purchase.spec.ts` | Marketplace → Add to cart → Checkout → Success. État panier vide. |
| **Chat** | `tests/chat.spec.ts` | Load /chat, UI (Channels, input), état connecté/déconnecté. Envoi message (skip si WebSocket indisponible). |
2026-02-14 13:04:14 +00:00
| **Smoke** | `tests/smoke.spec.ts` | Login → Upload → Création playlist → Ajout track. |
| **Playlists** | `tests/playlists.spec.ts` | Création, liste, modification, ajout/suppression de tracks, suppression playlist, recherche. |
| **Search** | `tests/search.spec.ts` | Navigation vers `/search` , saisie requête, vérification des résultats (tracks/playlists) ou état vide. |
| **Play** | `tests/play.spec.ts` | Après login : search → clic sur un track → page track ou player visible (ou état vide si pas de résultats). |
| **Profile** | `tests/profile.spec.ts` | Affichage profil, informations compte. |
2026-02-14 21:45:10 +00:00
| **Post-deploy smoke** | `tests/smoke-post-deploy.spec.ts` | Health checks (homepage, login, API) against deployed URL. |
## Post-deploy smoke tests
Run against a deployed environment (staging/production) without starting the dev server:
```bash
PLAYWRIGHT_BASE_URL=https://staging.veza.com npx playwright test --config=playwright.config.smoke.ts
```
Or with `VITE_FRONTEND_URL` :
```bash
VITE_FRONTEND_URL=https://app.veza.com npx playwright test --config=playwright.config.smoke.ts
```
In CI (cd.yml), the smoke job runs after deploy when `STAGING_URL` (secret or variable) is configured.
2026-02-14 13:04:14 +00:00
## Prérequis
2026-02-15 13:51:29 +00:00
- **Frontend** : servi (ex. `npm run dev` ) sur l'URL configurée dans `TEST_CONFIG.FRONTEND_URL` (défaut : http://localhost:5173).
- **Backend API** : disponible pour auth, search, playlists, upload, marketplace (défaut : http://localhost:8080/api/v1).
- **Chat server** (optionnel) : pour les tests Chat complets (envoi de message). Sans chat server, les tests Chat font du smoke (load UI, état déconnecté).
- **Compte de test** : voir `e2e/utils/test-helpers.ts` : `TEST_USERS.default` (ou `TEST_EMAIL` , `TEST_PASSWORD` ).
2026-02-14 13:04:14 +00:00
## Lancer les E2E
```bash
cd apps/web
npm run test:e2e
# ou
npx playwright test
```
Pour un fichier précis :
```bash
npx playwright test e2e/tests/auth.spec.ts
```
2026-02-15 13:51:29 +00:00
Tous les flows critiques (Auth, Upload, Purchase, Chat) :
```bash
npx playwright test e2e/tests/auth.spec.ts e2e/tests/upload.spec.ts e2e/tests/purchase.spec.ts e2e/tests/chat.spec.ts
```
Phase 2 stabilisation: code mort, Modal→Dialog, feature flags, tests, router split, Rust legacy
Bloc A - Code mort:
- Suppression Studio (components, views, features)
- Suppression gamification + services mock (projectService, storageService, gamificationService)
- Mise à jour Sidebar, Navbar, locales
Bloc B - Frontend:
- Suppression modal.tsx deprecated, Modal.stories (doublon Dialog)
- Feature flags: PLAYLIST_SEARCH, PLAYLIST_RECOMMENDATIONS, ROLE_MANAGEMENT = true
- Suppression 19 tests orphelins, retrait exclusions vitest.config
Bloc C - Backend:
- Extraction routes_auth.go depuis router.go
Bloc D - Rust:
- Suppression security_legacy.rs (code mort, patterns déjà dans security/)
2026-02-14 16:23:32 +00:00
**Machine à ressources limitées** : lancer **un seul spec** à la fois et **un seul projet** (chromium) pour éviter saturation CPU/RAM. Les specs auth, smoke, playlists, search nécessitent que le **Backend API** soit démarré (sinon les appels API échouent en 500). En CI, la suite complète tourne dans le cloud.
```bash
npx playwright test e2e/tests/auth.spec.ts --project=chromium
```
2026-02-14 13:04:14 +00:00
## 2FA E2E
2026-02-14 13:06:46 +00:00
Le test « should complete login with 2FA code » dans `auth.spec.ts` s'exécute **uniquement** lorsque `E2E_2FA_CODE` est défini. Pour lancer le test 2FA en CI ou en local :
- **Obligatoire** : `E2E_2FA_CODE` — code TOTP valide au moment de l'exécution (ou code de test si l'env le permet).
- **Optionnel** : `E2E_2FA_EMAIL` — email du compte 2FA (défaut : `TEST_USERS.default.email` ).
- **Optionnel** : `E2E_2FA_PASSWORD` — mot de passe du compte (défaut : `TEST_USERS.default.password` ).
Exemple :
```bash
E2E_2FA_CODE=123456 E2E_2FA_EMAIL=user@example.com E2E_2FA_PASSWORD=secret npx playwright test e2e/tests/auth.spec.ts -g "2FA"
```