{ "metadata": { "created_at": "2025-12-26T12:00:00Z", "last_updated": "2025-12-26T12:30:00Z", "version": "1.0.0", "test_suite": "MVP Integration Tests" }, "bugs": [ { "id": "BUG-001", "title": "Authentification - Format de requête API incorrect pour /auth/register", "description": "L'endpoint /api/v1/auth/register retourne une erreur 'Le mot de passe est requis' même quand le mot de passe est fourni dans le body JSON. Cela bloque tous les tests d'authentification.", "severity": "critical", "category": "auth", "status": "open", "priority": 1, "steps_to_reproduce": [ "1. Exécuter curl -X POST 'http://localhost:8080/api/v1/auth/register' -H 'Content-Type: application/json' -d '{\"email\":\"test@example.com\",\"username\":\"testuser\",\"password\":\"TestPassword123!\",\"password_confirmation\":\"TestPassword123!\"}'", "2. Observer la réponse d'erreur avec code 2000" ], "expected_behavior": "L'utilisateur devrait être créé avec succès (HTTP 201) et retourner les données utilisateur avec un token.", "actual_behavior": "Erreur HTTP avec message 'Le mot de passe est requis' (code 2000).", "environment": { "backend_version": "unknown", "api_endpoint": "/api/v1/auth/register", "method": "POST" }, "logs": [ "{\"success\":false,\"error\":{\"code\":2000,\"message\":\"Le mot de passe est requis\",\"request_id\":\"4445a4b2-8b30-4951-91ac-1f252f36c109\",\"timestamp\":\"2025-12-26T12:27:58Z\"}}" ], "assigned_to": null, "created_at": "2025-12-26T12:27:58Z", "updated_at": "2025-12-26T12:30:00Z" }, { "id": "BUG-002", "title": "Global Setup E2E échoue avec timeout", "description": "Le global setup Playwright échoue avec un timeout lors de la tentative de login. Cela bloque tous les tests E2E car ils dépendent de l'état d'authentification sauvegardé.", "severity": "critical", "category": "e2e", "status": "open", "priority": 1, "steps_to_reproduce": [ "1. Exécuter cd apps/web && npx playwright test e2e/mvp-integration.spec.ts", "2. Observer le timeout dans global-setup.ts ligne 57" ], "expected_behavior": "Le global setup devrait créer un utilisateur de test, se connecter, et sauvegarder l'état d'authentification dans e2e/.auth/user.json.", "actual_behavior": "Timeout après 20 secondes lors de l'attente de la redirection vers /dashboard après login. L'utilisateur n'est probablement pas créé à cause de BUG-001.", "environment": { "browser": "Chromium", "os": "Linux", "playwright_version": "1.41.2", "frontend_url": "http://localhost:5173" }, "logs": [ "❌ [GLOBAL SETUP] Global setup failed: page.waitForURL: Timeout 20000ms exceeded." ], "assigned_to": null, "created_at": "2025-12-26T12:28:00Z", "updated_at": "2025-12-26T12:30:00Z" }, { "id": "BUG-003", "title": "Script test-mvp-api.sh - Extraction de token incorrecte", "description": "Le script test-mvp-api.sh ne parvient pas à extraire correctement le access_token de la réponse de login, même si le format de réponse pourrait être correct. Cela bloque les tests suivants qui nécessitent un token.", "severity": "high", "category": "testing", "status": "open", "priority": 2, "steps_to_reproduce": [ "1. Exécuter ./scripts/test-mvp-api.sh", "2. Observer le message 'Login response missing access_token' après AUTH-004" ], "expected_behavior": "Le script devrait extraire le token depuis .data.access_token, .access_token, ou .data.token.access_token et le stocker dans ACCESS_TOKEN.", "actual_behavior": "Le token n'est pas extrait, probablement à cause d'un format de réponse différent ou d'une erreur dans la logique d'extraction jq.", "environment": { "script": "scripts/test-mvp-api.sh", "jq_version": "installed" }, "logs": [ "[✗] Login response missing access_token" ], "assigned_to": null, "created_at": "2025-12-26T12:28:30Z", "updated_at": "2025-12-26T12:30:00Z" } ], "summary": { "total_bugs": 3, "by_severity": { "critical": 2, "high": 1, "medium": 0, "low": 0 }, "by_category": { "auth": 1, "tracks": 0, "playlists": 0, "profile": 0, "navigation": 0, "api": 0, "ui": 0, "e2e": 1, "testing": 1, "general": 0 }, "by_status": { "open": 3, "in_progress": 0, "fixed": 0, "closed": 0, "wont_fix": 0 } }, "test_results": { "api_tests": { "total": 28, "passed": 2, "failed": 1, "skipped": 25 }, "e2e_tests": { "total": 20, "passed": 0, "failed": 1, "skipped": 19 } } }