# 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 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