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

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 :

  • 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é)

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 :

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