- Modified internal/core/auth/service.go to make token generation non-blocking - If token generation/storage fails, registration still succeeds - User can request a new verification token later - Backend needs to be restarted for changes to take effect Note: This fixes the 'Failed to create user' error when email verification service fails. The registration will now succeed even if token generation fails.
160 lines
7.3 KiB
JSON
160 lines
7.3 KiB
JSON
{
|
|
"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 utilisait 'password_confirmation' au lieu de 'password_confirm'. CORRIGÉ: Le script de test utilise maintenant 'password_confirm'. Cependant, le register échoue toujours avec 'Failed to create user' (code 9000), probablement dû à un problème de base de données ou de validation du mot de passe.",
|
|
"severity": "critical",
|
|
"category": "auth",
|
|
"status": "in_progress",
|
|
"priority": 1,
|
|
"fix_description": "Corrigé le script test-mvp-api.sh pour utiliser 'password_confirm' au lieu de 'password_confirmation'. Le format de requête est maintenant correct, mais le register échoue toujours avec une erreur interne (probablement DB ou validation).",
|
|
"fixed_at": "2025-12-26T12:57:00Z",
|
|
"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:57:00Z"
|
|
},
|
|
{
|
|
"id": "BUG-004",
|
|
"title": "Register endpoint returns 'Failed to create user' (code 9000)",
|
|
"description": "Après correction du format password_confirm, le register échoue toujours avec une erreur interne (code 9000) 'Failed to create user'. CORRIGÉ: Rendu la génération du token de vérification d'email non-bloquante dans internal/core/auth/service.go. Si la génération/storage du token échoue, l'inscription continue quand même. Le backend doit être redémarré pour que la correction prenne effet.",
|
|
"severity": "critical",
|
|
"category": "auth",
|
|
"status": "in_progress",
|
|
"priority": 1,
|
|
"fix_description": "Modifié internal/core/auth/service.go pour rendre la génération du token de vérification d'email non-bloquante. Si le service est nil ou si la génération/storage échoue, on log un warning mais on continue avec l'inscription. L'utilisateur peut demander un nouveau token plus tard.",
|
|
"fixed_at": "2025-12-26T13:03:00Z",
|
|
"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_confirm\":\"TestPassword123!\"}'",
|
|
"2. Observer l'erreur avec code 9000"
|
|
],
|
|
"expected_behavior": "L'utilisateur devrait être créé avec succès (HTTP 201) et retourner les données utilisateur.",
|
|
"actual_behavior": "Erreur HTTP 500 avec message 'Failed to create user' (code 9000).",
|
|
"environment": {
|
|
"backend_version": "unknown",
|
|
"api_endpoint": "/api/v1/auth/register",
|
|
"method": "POST"
|
|
},
|
|
"logs": [
|
|
"{\"success\":false,\"error\":{\"code\":9000,\"message\":\"Failed to create user\",\"request_id\":\"...\",\"timestamp\":\"...\"}}"
|
|
],
|
|
"assigned_to": null,
|
|
"created_at": "2025-12-26T12:57:00Z",
|
|
"updated_at": "2025-12-26T12:57: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": 4,
|
|
"by_severity": {
|
|
"critical": 3,
|
|
"high": 1,
|
|
"medium": 0,
|
|
"low": 0
|
|
},
|
|
"by_category": {
|
|
"auth": 2,
|
|
"tracks": 0,
|
|
"playlists": 0,
|
|
"profile": 0,
|
|
"navigation": 0,
|
|
"api": 0,
|
|
"ui": 0,
|
|
"e2e": 1,
|
|
"testing": 1,
|
|
"general": 0
|
|
},
|
|
"by_status": {
|
|
"open": 3,
|
|
"in_progress": 1,
|
|
"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
|
|
}
|
|
}
|
|
}
|