1.9 KiB
1.9 KiB
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 :
artistcreatorpremiumproducerlabeladmin
Solution
Promouvoir l'utilisateur de test au rôle artist avant d'exécuter les tests.
Option 1 : Script Automatique (Recommandé)
cd apps/web/e2e
./setup-test-user-role.sh
Le script détecte automatiquement si vous utilisez :
psqldirectement- Docker avec un conteneur PostgreSQL
Option 2 : SQL Manuel
Si le script ne fonctionne pas, exécutez manuellement le SQL :
# 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 :
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 NOTHINGpour éviter les erreurs si le rôle existe déjà - Le script crée le rôle
artists'il n'existe pas dans la tableroles
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