veza/apps/web/e2e/README_ROLE_SETUP.md
2025-12-22 22:00:50 +01:00

73 lines
1.9 KiB
Markdown

# Setup Test User Role for E2E Tests
## Problème
Les tests E2E d'upload échouent avec l'erreur `403 Forbidden: Content creation denied - insufficient role`.
**Cause :** L'utilisateur de test (`user@example.com`) a le rôle par défaut `user`, mais le backend exige un des rôles suivants pour créer du contenu :
- `artist`
- `creator`
- `premium`
- `producer`
- `label`
- `admin`
## Solution
Promouvoir l'utilisateur de test au rôle `artist` avant d'exécuter les tests.
### Option 1 : Script Automatique (Recommandé)
```bash
cd apps/web/e2e
./setup-test-user-role.sh
```
Le script détecte automatiquement si vous utilisez :
- `psql` directement
- Docker avec un conteneur PostgreSQL
### Option 2 : SQL Manuel
Si le script ne fonctionne pas, exécutez manuellement le SQL :
```bash
# Avec psql
psql "postgres://veza:password@localhost:5432/veza" -f setup-test-user-role.sql
# Avec Docker
docker exec -i <postgres-container> psql -U veza -d veza < setup-test-user-role.sql
```
### Option 3 : Via Interface Graphique (DBeaver, pgAdmin, etc.)
Ouvrez `setup-test-user-role.sql` et exécutez-le dans votre client SQL.
## Vérification
Après avoir exécuté le script, vérifiez que l'utilisateur a bien le rôle :
```sql
SELECT
u.email,
r.name as role_name
FROM users u
LEFT JOIN user_roles ur ON u.id = ur.user_id
LEFT JOIN roles r ON ur.role_id = r.id
WHERE u.email = 'user@example.com';
```
Vous devriez voir `artist` dans la colonne `role_name`.
## Notes
- Ce script est **idempotent** : vous pouvez l'exécuter plusieurs fois sans problème
- Il utilise `ON CONFLICT DO NOTHING` pour éviter les erreurs si le rôle existe déjà
- Le script crée le rôle `artist` s'il n'existe pas dans la table `roles`
## Tests Affectés
Une fois le rôle configuré, ces tests devraient passer :
-`track_lifecycle.spec.ts` - Complete Track Lifecycle
-`tracks_upload_chunked.spec.ts` - Chunked Upload Flow
-`upload_flow.spec.ts` - Upload Flow Happy Path