veza/apps/web/full_test_result.txt
2025-12-22 22:00:50 +01:00

2817 lines
124 KiB
Text
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

> veza-frontend@1.0.0 test:e2e
> playwright test
Running 38 tests using 1 worker
[1/38] [chromium] e2e/auth.spec.ts:37:3 Authentication Flow should login successfully with valid credentials
[chromium] e2e/auth.spec.ts:37:3 Authentication Flow should login successfully with valid credentials
🧪 [AUTH TEST] Running: Login with valid credentials
✏ [FILL] Filling field input[type="email"], input[name="email"] with value: user@example.com
✅ [FILL] Field input[type="email"], input[name="email"] filled successfully
✏ [FILL] Filling field input[type="password"], input[name="password"] with value: password123
✅ [FILL] Field input[type="password"], input[name="password"] filled successfully
⚡ [FORM SUBMIT] Forcing submission of form: form
🔍 [FORM SUBMIT] Waiting for form selector: form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form submitted successfully
⏳ [AUTH TEST] Waiting for Zustand to persist auth-storage...
 ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
✅ [AUTH TEST] Login successful (token in storage)

📊 [AUTH TEST] === Final Verifications ===
✅ [AUTH TEST] No console errors
✅ [AUTH TEST] No network errors
[2/38] [chromium] e2e/auth.spec.ts:103:3 Authentication Flow should show error with invalid credentials
[chromium] e2e/auth.spec.ts:103:3 Authentication Flow should show error with invalid credentials
🧪 [AUTH TEST] Running: Login with invalid credentials
✏ [FILL] Filling field input[type="email"], input[name="email"] with value: wrong@example.com
✅ [FILL] Field input[type="email"], input[name="email"] filled successfully
✏ [FILL] Filling field input[type="password"], input[name="password"] with value: wrongpassword
✅ [FILL] Field input[type="password"], input[name="password"] filled successfully
⚡ [FORM SUBMIT] Forcing submission of form: form
🔍 [FORM SUBMIT] Waiting for form selector: form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form submitted successfully
🔔 [TOAST] Waiting for error message...
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/login: 403
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [CONSOLE ERROR] Login error: {code: 1004, message: Invalid credentials, details: undefined, request_id: b10e0ec0-1bd2-4d5b-83d8-1b343281ce25, timestamp: 2025-12-19T12:21:46Z}
✅ [TOAST] error message: Invalid credentials
✅ [AUTH TEST] Error shown for invalid credentials

📊 [AUTH TEST] === Final Verifications ===
🔴 [AUTH TEST] Console errors (2):
 - Failed to load resource: the server responded with a status of 403 (Forbidden)
 - Login error: {code: 1004, message: Invalid credentials, details: undefined, request_id: b10e0ec0-1bd2-4d5b-83d8-1b343281ce25, timestamp: 2025-12-19T12:21:46Z}
🔴 [AUTH TEST] Network errors (1):
 - POST http://127.0.0.1:8080/api/v1/auth/login: 403
[3/38] [chromium] e2e/auth.spec.ts:129:3 Authentication Flow should register a new user successfully
[chromium] e2e/auth.spec.ts:129:3 Authentication Flow should register a new user successfully
🧪 [AUTH TEST] Running: User registration
✏ [FILL] Filling field input[name="email"], input#email with value: test-1766146906997@example.com
✅ [FILL] Field input[name="email"], input#email filled successfully
✏ [FILL] Filling field input[name="username"], input#username with value: testuser1766146906997
✅ [FILL] Field input[name="username"], input#username filled successfully
✏ [FILL] Filling field input[name="password"], input#password with value: Test123456789!
✅ [FILL] Field input[name="password"], input#password filled successfully
✏ [FILL] Filling field input[name="passwordConfirm"], input[name="password_confirm"], input[name="confirmPassword"], input#passwordConfirm with value: Test123456789!
✅ [FILL] Field input[name="passwordConfirm"], input[name="password_confirm"], input[name="confirmPassword"], input#passwordConfirm filled successfully
⚡ [FORM SUBMIT] Forcing submission of form: form
🔍 [FORM SUBMIT] Waiting for form selector: form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form submitted successfully
🔴 [CONSOLE ERROR] [AUTH] Tokens not found in register response: {user: Object, token: Object}
✅ [AUTH TEST] Registration successful with auto-login

📊 [AUTH TEST] === Final Verifications ===
🔴 [AUTH TEST] Console errors (1):
 - [AUTH] Tokens not found in register response: {user: Object, token: Object}
✅ [AUTH TEST] No network errors
[4/38] [chromium] e2e/auth.spec.ts:226:3 Authentication Flow should show error when registering with existing email
[chromium] e2e/auth.spec.ts:226:3 Authentication Flow should show error when registering with existing email
🧪 [AUTH TEST] Running: Registration with existing email
✏ [FILL] Filling field input[name="email"], input#email with value: user@example.com
✅ [FILL] Field input[name="email"], input#email filled successfully
✏ [FILL] Filling field input[name="username"], input#username with value: existinguser
✅ [FILL] Field input[name="username"], input#username filled successfully
✏ [FILL] Filling field input[name="password"], input#password with value: Test123456789!
✅ [FILL] Field input[name="password"], input#password filled successfully
✏ [FILL] Filling field input[name="passwordConfirm"], input[name="password_confirm"], input[name="confirmPassword"], input#passwordConfirm with value: Test123456789!
✅ [FILL] Field input[name="passwordConfirm"], input[name="password_confirm"], input[name="confirmPassword"], input#passwordConfirm filled successfully
⚡ [FORM SUBMIT] Forcing submission of form: form
🔍 [FORM SUBMIT] Waiting for form selector: form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form submitted successfully
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/register: 500
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error)
🔴 [CONSOLE ERROR] Register error: {code: 9000, message: Failed to create user, details: undefined, request_id: b5921d56-0cf7-49c9-86c6-3265adc462fe, timestamp: 2025-12-19T12:21:51Z}
✅ [AUTH TEST] Error shown for existing email: "Failed to create user"

📊 [AUTH TEST] === Final Verifications ===
🔴 [AUTH TEST] Console errors (2):
 - Failed to load resource: the server responded with a status of 500 (Internal Server Error)
 - Register error: {code: 9000, message: Failed to create user, details: undefined, request_id: b5921d56-0cf7-49c9-86c6-3265adc462fe, timestamp: 2025-12-19T12:21:51Z}
🔴 [AUTH TEST] Network errors (1):
 - POST http://127.0.0.1:8080/api/v1/auth/register: 500
[5/38] [chromium] e2e/auth.spec.ts:286:3 Authentication Flow should logout successfully
[chromium] e2e/auth.spec.ts:286:3 Authentication Flow should logout successfully
🧪 [AUTH TEST] Running: Logout
🔐 [LOGIN] Authenticating as user@example.com...
⏳ [LOGIN] Waiting 100ms before login (1766146913593ms since last login)...
⚡ [FORM SUBMIT] Forcing submission of form: form
🔍 [FORM SUBMIT] Waiting for form selector: form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form submitted successfully
⏳ [LOGIN] Waiting for networkidle after navigation...
⏳ [LOGIN] Waiting for auth state to be persisted...
🔍 [LOGIN] Verifying authentication state...
 ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
🔍 [AUTH TEST] Checking token presence before logout...
 ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
✅ [AUTH TEST] Token present before logout: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik...
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/logout: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/logout: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
✅ [AUTH TEST] Logout successful

📊 [AUTH TEST] === Final Verifications ===
🔴 [AUTH TEST] Console errors (2):
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [AUTH TEST] Network errors (2):
 - POST http://127.0.0.1:8080/api/v1/auth/logout: 401
 - POST http://127.0.0.1:8080/api/v1/auth/logout: 401
[6/38] [chromium] e2e/auth.spec.ts:357:3 Authentication Flow should redirect to login when accessing protected route without auth
[chromium] e2e/auth.spec.ts:357:3 Authentication Flow should redirect to login when accessing protected route without auth
🧪 [AUTH TEST] Running: Route guard test
🔴 [REQUEST FAILED] GET http://localhost:3000/node_modules/.vite/deps/@hookform_resolvers_zod.js?v=490fee7e: net::ERR_ABORTED
🔴 [REQUEST FAILED] GET http://localhost:3000/node_modules/.vite/deps/chunk-HL7VHMNJ.js?v=490fee7e: net::ERR_ABORTED
✅ [AUTH TEST] Route guard working correctly

📊 [AUTH TEST] === Final Verifications ===
✅ [AUTH TEST] No console errors
🔴 [AUTH TEST] Network errors (2):
 - GET http://localhost:3000/node_modules/.vite/deps/@hookform_resolvers_zod.js?v=490fee7e: 0
 - GET http://localhost:3000/node_modules/.vite/deps/chunk-HL7VHMNJ.js?v=490fee7e: 0
[7/38] [chromium] e2e/auth.spec.ts:379:3 Authentication Flow should logout after page refresh (memory token architecture)
[chromium] e2e/auth.spec.ts:379:3 Authentication Flow should logout after page refresh (memory token architecture)
🧪 [AUTH TEST] Running: Memory token refresh test
🔐 [LOGIN] Authenticating as user@example.com...
⏳ [LOGIN] Waiting 100ms before login (3878ms since last login)...
⚡ [FORM SUBMIT] Forcing submission of form: form
🔍 [FORM SUBMIT] Waiting for form selector: form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form submitted successfully
⏳ [LOGIN] Waiting for networkidle after navigation...
⏳ [LOGIN] Waiting for auth state to be persisted...
🔍 [LOGIN] Verifying authentication state...
 ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
✅ [AUTH TEST] Authenticated before refresh
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766146920177: net::ERR_ABORTED
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766146920453: net::ERR_ABORTED
✅ [AUTH TEST] Correctly redirected to login after refresh (memory token lost)

📊 [AUTH TEST] === Final Verifications ===
🔴 [AUTH TEST] Console errors (6):
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [AUTH TEST] Network errors (8):
 - GET http://localhost:3000/src/index.css?t=1766146920177: 0
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
 - GET http://localhost:3000/src/index.css?t=1766146920453: 0
[8/38] [chromium] e2e/auth.spec.ts:440:3 Authentication Flow should validate login form fields
[chromium] e2e/auth.spec.ts:440:3 Authentication Flow should validate login form fields
🧪 [AUTH TEST] Running: Login form validation
✅ [AUTH TEST] Form validation prevented submission (stayed on login page)

📊 [AUTH TEST] === Final Verifications ===
✅ [AUTH TEST] No console errors
✅ [AUTH TEST] No network errors
[9/38] [chromium] e2e/auth.spec.ts:497:3 Authentication Flow should show error when passwords do not match during registration
[chromium] e2e/auth.spec.ts:497:3 Authentication Flow should show error when passwords do not match during registration
🧪 [AUTH TEST] Running: Password mismatch validation
✏ [FILL] Filling field input[name="email"], input#email with value: newuser@example.com
✅ [FILL] Field input[name="email"], input#email filled successfully
✏ [FILL] Filling field input[name="password"], input#password with value: Password123456!
✅ [FILL] Field input[name="password"], input#password filled successfully
✏ [FILL] Filling field input[name="passwordConfirm"], input[name="password_confirm"], input[name="confirmPassword"] with value: DifferentPassword!
✅ [FILL] Field input[name="passwordConfirm"], input[name="password_confirm"], input[name="confirmPassword"] filled successfully
⚡ [FORM SUBMIT] Forcing submission of form: form
🔍 [FORM SUBMIT] Waiting for form selector: form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form submitted successfully
✅ [AUTH TEST] Password mismatch error shown (found by CSS)

📊 [AUTH TEST] === Final Verifications ===
✅ [AUTH TEST] No console errors
✅ [AUTH TEST] No network errors
[10/38] [chromium] e2e/deep_audit.spec.ts:254:3 Deep E2E Runtime Audit Complete User Journey - Runtime Audit
[chromium] e2e/deep_audit.spec.ts:254:3 Deep E2E Runtime Audit Complete User Journey - Runtime Audit
🔍 [AUDIT] Starting comprehensive E2E audit...
🔍 [AUDIT] Step 1: Navigating to login...
🔍 [AUDIT] Step 2: Submitting login form...
✅ [AUDIT] Login successful, redirected to: http://localhost:3000/dashboard
🔍 [AUDIT] Step 3: Testing page navigation and lazy loading...
 → Checking /dashboard...
 → Navigating to /profile...
 → Navigating to /settings...
 → Navigating to /library...
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/playlists?page=20&limit=0 -> 401
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/playlists?page=20&limit=0 -> 401

📊 [AUDIT] === AUDIT SUMMARY ===
Global Status: STABLE
Login Success: true
Pages Checked: 4
Total Issues: 3
 - Critical: 0
 - High: 3
 - Medium: 0
 - Low: 0
By Category:
 - NETWORK: 2
 - CONSOLE: 1
 - NAVIGATION: 0
 - UX: 0
✅ [AUDIT] Application appears STABLE
📄 [AUDIT] JSON report written to: /home/senke/git/talas/veza/apps/web/RUNTIME_ISSUES.json
📄 [AUDIT] Markdown report written to: /home/senke/git/talas/veza/apps/web/RUNTIME_AUDIT_REPORT.md
[11/38] [chromium] e2e/diagnostic.spec.ts:55:3 Full Stack Compatibility Diagnostic Login Flow - Complete Diagnostic
[chromium] e2e/diagnostic.spec.ts:55:3 Full Stack Compatibility Diagnostic Login Flow - Complete Diagnostic
🔍 [DIAGNOSTIC] Navigation vers /login...
📄 [DIAGNOSTIC] Nombre d'inputs sur la page: 3
📄 [DIAGNOSTIC] Nombre de boutons sur la page: 1
📄 [DIAGNOSTIC] Page title: Veza - Plateforme de streaming musical
📄 [DIAGNOSTIC] URL actuelle: http://localhost:3000/login
📄 [DIAGNOSTIC] Email input visible: true
📄 [DIAGNOSTIC] Password input visible: true
📄 [DIAGNOSTIC] Submit button visible: true
📄 [DIAGNOSTIC] Page contient "form": true
✅ [DIAGNOSTIC] Formulaire de login visible
🔍 [DIAGNOSTIC] Remplissage du formulaire...
🔍 [DIAGNOSTIC] Clic sur le bouton de connexion...
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 429 (Too Many Requests)
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 429 (Too Many Requests)
🔴 [CONSOLE ERROR] Login error: {code: 429, message: Trop de requêtes. Veuillez patienter avant de réessayer., timestamp: 2025-12-19T12:22:31.039Z, details: undefined, retry_after: undefined}
⚠ [DIAGNOSTIC] Pas de navigation ni d'erreur visible. URL actuelle: http://localhost:3000/login
🔍 [DIAGNOSTIC] Vérification du localStorage...
📦 [DIAGNOSTIC] LocalStorage: [ 'i18nextLng', 'auth-storage' ]
❌ [DIAGNOSTIC] Token d'accès absent

📊 [DIAGNOSTIC] === RAPPORT DE DIAGNOSTIC ===
Erreurs réseau: 2
Erreurs console: 3
Erreurs CORS: 0
Navigation réussie: false
Token présent: false

🔴 Erreurs réseau:
 - POST http://127.0.0.1:8080/api/v1/auth/login: HTTP 429
 - POST http://127.0.0.1:8080/api/v1/auth/login: HTTP 429

🔴 Erreurs console:
 - [error] Failed to load resource: the server responded with a status of 429 (Too Many Requests)
 - [error] Failed to load resource: the server responded with a status of 429 (Too Many Requests)
 - [error] Login error: {code: 429, message: Trop de requêtes. Veuillez patienter avant de réessayer., timestamp: 2025-12-19T12:22:31.039Z, details: undefined, retry_after: undefined}
[12/38] [chromium] e2e/playlists.spec.ts:44:3 Playlists CRUD should create a new playlist successfully
[chromium] e2e/playlists.spec.ts:44:3 Playlists CRUD should create a new playlist successfully
🔐 [LOGIN] Authenticating as user@example.com...
⏳ [LOGIN] Waiting 100ms before login (40707ms since last login)...
⚡ [FORM SUBMIT] Forcing submission of form: form
🔍 [FORM SUBMIT] Waiting for form selector: form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form submitted successfully
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/login: 429
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 429 (Too Many Requests)
⏳ [LOGIN] Waiting for networkidle after navigation...
⏳ [LOGIN] Waiting for auth state to be persisted...
🔍 [LOGIN] Verifying authentication state...
 ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
🧪 [PLAYLISTS] Running: Create new playlist
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766146966068: net::ERR_ABORTED
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766146966336: net::ERR_ABORTED

📊 [PLAYLISTS] === Final Verifications ===
🔴 [PLAYLISTS] Console errors (7):
 - Failed to load resource: the server responded with a status of 429 (Too Many Requests)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [PLAYLISTS] Network errors (9):
 - POST http://127.0.0.1:8080/api/v1/auth/login: 429
 - GET http://localhost:3000/src/index.css?t=1766146966068: 0
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
 - GET http://localhost:3000/src/index.css?t=1766146966336: 0
 1) [chromium] e2e/playlists.spec.ts:44:3 Playlists CRUD should create a new playlist successfully
Error: Navigation to /playlists failed. Current URL: http://localhost:3000/login
55 | const currentUrl = page.url();
56 | if (!currentUrl.includes('/playlists')) {
> 57 | throw new Error(`Navigation to /playlists failed. Current URL: ${currentUrl}`);
| ^
58 | }
59 | });
60 |
at /home/senke/git/talas/veza/apps/web/e2e/playlists.spec.ts:57:15
at /home/senke/git/talas/veza/apps/web/e2e/playlists.spec.ts:53:5
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
test-results/playlists-Playlists-CRUD-s-ee35d-a-new-playlist-successfully-chromium/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
test-results/playlists-Playlists-CRUD-s-ee35d-a-new-playlist-successfully-chromium/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
Error Context: test-results/playlists-Playlists-CRUD-s-ee35d-a-new-playlist-successfully-chromium/error-context.md
[13/38] [chromium] e2e/playlists.spec.ts:94:3 Playlists CRUD should display list of playlists
[chromium] e2e/playlists.spec.ts:94:3 Playlists CRUD should display list of playlists
🔐 [LOGIN] Authenticating as user@example.com...
⏳ [LOGIN] Waiting 100ms before login (1766146983143ms since last login)...
⚡ [FORM SUBMIT] Forcing submission of form: form
🔍 [FORM SUBMIT] Waiting for form selector: form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form submitted successfully
⏳ [LOGIN] Waiting for networkidle after navigation...
⏳ [LOGIN] Waiting for auth state to be persisted...
🔍 [LOGIN] Verifying authentication state...
 ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
🧪 [PLAYLISTS] Running: Display playlists list
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766146985881: net::ERR_ABORTED
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766146986120: net::ERR_ABORTED

📊 [PLAYLISTS] === Final Verifications ===
🔴 [PLAYLISTS] Console errors (6):
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [PLAYLISTS] Network errors (8):
 - GET http://localhost:3000/src/index.css?t=1766146985881: 0
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
 - GET http://localhost:3000/src/index.css?t=1766146986120: 0
 2) [chromium] e2e/playlists.spec.ts:94:3 Playlists CRUD should display list of playlists ───
Error: Navigation to /playlists failed. Current URL: http://localhost:3000/login
105 | const currentUrl = page.url();
106 | if (!currentUrl.includes('/playlists')) {
> 107 | throw new Error(`Navigation to /playlists failed. Current URL: ${currentUrl}`);
| ^
108 | }
109 | });
110 |
at /home/senke/git/talas/veza/apps/web/e2e/playlists.spec.ts:107:15
at /home/senke/git/talas/veza/apps/web/e2e/playlists.spec.ts:103:5
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
test-results/playlists-Playlists-CRUD-should-display-list-of-playlists-chromium/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
test-results/playlists-Playlists-CRUD-should-display-list-of-playlists-chromium/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
Error Context: test-results/playlists-Playlists-CRUD-should-display-list-of-playlists-chromium/error-context.md
[14/38] [chromium] e2e/playlists.spec.ts:124:3 Playlists CRUD should update playlist name and description
[chromium] e2e/playlists.spec.ts:124:3 Playlists CRUD should update playlist name and description
🔐 [LOGIN] Authenticating as user@example.com...
⏳ [LOGIN] Waiting 100ms before login (1766147002862ms since last login)...
⚡ [FORM SUBMIT] Forcing submission of form: form
🔍 [FORM SUBMIT] Waiting for form selector: form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form submitted successfully
⏳ [LOGIN] Waiting for networkidle after navigation...
⏳ [LOGIN] Waiting for auth state to be persisted...
🔍 [LOGIN] Verifying authentication state...
 ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
🧪 [PLAYLISTS] Running: Update playlist
🧭 [NAVIGATION] Navigating via href: /playlists...
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147005827: net::ERR_ABORTED
✅ [NAVIGATION] Successfully navigated directly to /playlists
📦 [MODAL] Opening modal via button: /create|créer|nouvelle/i

📊 [PLAYLISTS] === Final Verifications ===
🔴 [PLAYLISTS] Console errors (6):
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [PLAYLISTS] Network errors (7):
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
 - GET http://localhost:3000/src/index.css?t=1766147005827: 0
 3) [chromium] e2e/playlists.spec.ts:124:3 Playlists CRUD should update playlist name and description
Error: expect(locator).toBeVisible() failed
Locator: locator('button').filter({ hasText: /create|créer|nouvelle/i }).first()
Expected: visible
Timeout: 10000ms
Error: element(s) not found
Call log:
 - Expect "toBeVisible" with timeout 10000ms
 - waiting for locator('button').filter({ hasText: /create|créer|nouvelle/i }).first()
at utils/test-helpers.ts:784
782 | }
783 |
> 784 | await expect(button).toBeVisible({ timeout: 10000 });
| ^
785 | await button.click();
786 |
787 | // Attendre que la modal soit visible
at openModal (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:784:24)
at /home/senke/git/talas/veza/apps/web/e2e/playlists.spec.ts:129:5
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
test-results/playlists-Playlists-CRUD-s-16421-aylist-name-and-description-chromium/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
test-results/playlists-Playlists-CRUD-s-16421-aylist-name-and-description-chromium/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
Error Context: test-results/playlists-Playlists-CRUD-s-16421-aylist-name-and-description-chromium/error-context.md
[15/38] [chromium] e2e/playlists.spec.ts:187:3 Playlists CRUD should add track to playlist
[chromium] e2e/playlists.spec.ts:187:3 Playlists CRUD should add track to playlist
🔐 [LOGIN] Authenticating as user@example.com...
⏳ [LOGIN] Waiting 100ms before login (1766147027421ms since last login)...
⚡ [FORM SUBMIT] Forcing submission of form: form
🔍 [FORM SUBMIT] Waiting for form selector: form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form submitted successfully
⏳ [LOGIN] Waiting for networkidle after navigation...
⏳ [LOGIN] Waiting for auth state to be persisted...
🔍 [LOGIN] Verifying authentication state...
 ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
🧪 [PLAYLISTS] Running: Add track to playlist
🧭 [NAVIGATION] Navigating via href: /playlists...
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147030175: net::ERR_ABORTED
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147030459: net::ERR_ABORTED
✅ [NAVIGATION] Successfully navigated directly to /playlists
📦 [MODAL] Opening modal via button: /create|créer|nouvelle/i

📊 [PLAYLISTS] === Final Verifications ===
🔴 [PLAYLISTS] Console errors (6):
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [PLAYLISTS] Network errors (8):
 - GET http://localhost:3000/src/index.css?t=1766147030175: 0
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
 - GET http://localhost:3000/src/index.css?t=1766147030459: 0
 4) [chromium] e2e/playlists.spec.ts:187:3 Playlists CRUD should add track to playlist ──────
Error: expect(locator).toBeVisible() failed
Locator: locator('button').filter({ hasText: /create|créer|nouvelle/i }).first()
Expected: visible
Timeout: 10000ms
Error: element(s) not found
Call log:
 - Expect "toBeVisible" with timeout 10000ms
 - waiting for locator('button').filter({ hasText: /create|créer|nouvelle/i }).first()
at utils/test-helpers.ts:784
782 | }
783 |
> 784 | await expect(button).toBeVisible({ timeout: 10000 });
| ^
785 | await button.click();
786 |
787 | // Attendre que la modal soit visible
at openModal (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:784:24)
at /home/senke/git/talas/veza/apps/web/e2e/playlists.spec.ts:192:5
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
test-results/playlists-Playlists-CRUD-should-add-track-to-playlist-chromium/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
test-results/playlists-Playlists-CRUD-should-add-track-to-playlist-chromium/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
Error Context: test-results/playlists-Playlists-CRUD-should-add-track-to-playlist-chromium/error-context.md
[16/38] [chromium] e2e/playlists.spec.ts:247:3 Playlists CRUD should delete playlist successfully
[chromium] e2e/playlists.spec.ts:247:3 Playlists CRUD should delete playlist successfully
🔐 [LOGIN] Authenticating as user@example.com...
⏳ [LOGIN] Waiting 100ms before login (1766147052060ms since last login)...
⚡ [FORM SUBMIT] Forcing submission of form: form
🔍 [FORM SUBMIT] Waiting for form selector: form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form submitted successfully
⏳ [LOGIN] Waiting for networkidle after navigation...
⏳ [LOGIN] Waiting for auth state to be persisted...
🔍 [LOGIN] Verifying authentication state...
 ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
🧪 [PLAYLISTS] Running: Delete playlist
🧭 [NAVIGATION] Navigating via href: /playlists...
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147054821: net::ERR_ABORTED
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147055083: net::ERR_ABORTED
✅ [NAVIGATION] Successfully navigated directly to /playlists
📦 [MODAL] Opening modal via button: /create|créer|nouvelle/i

📊 [PLAYLISTS] === Final Verifications ===
🔴 [PLAYLISTS] Console errors (6):
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [PLAYLISTS] Network errors (8):
 - GET http://localhost:3000/src/index.css?t=1766147054821: 0
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
 - GET http://localhost:3000/src/index.css?t=1766147055083: 0
 5) [chromium] e2e/playlists.spec.ts:247:3 Playlists CRUD should delete playlist successfully
Error: expect(locator).toBeVisible() failed
Locator: locator('button').filter({ hasText: /create|créer|nouvelle/i }).first()
Expected: visible
Timeout: 10000ms
Error: element(s) not found
Call log:
 - Expect "toBeVisible" with timeout 10000ms
 - waiting for locator('button').filter({ hasText: /create|créer|nouvelle/i }).first()
at utils/test-helpers.ts:784
782 | }
783 |
> 784 | await expect(button).toBeVisible({ timeout: 10000 });
| ^
785 | await button.click();
786 |
787 | // Attendre que la modal soit visible
at openModal (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:784:24)
at /home/senke/git/talas/veza/apps/web/e2e/playlists.spec.ts:252:5
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
test-results/playlists-Playlists-CRUD-should-delete-playlist-successfully-chromium/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
test-results/playlists-Playlists-CRUD-should-delete-playlist-successfully-chromium/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
Error Context: test-results/playlists-Playlists-CRUD-should-delete-playlist-successfully-chromium/error-context.md
[17/38] [chromium] e2e/playlists.spec.ts:309:3 Playlists CRUD should display empty state for new playlist
[chromium] e2e/playlists.spec.ts:309:3 Playlists CRUD should display empty state for new playlist
🔐 [LOGIN] Authenticating as user@example.com...
⏳ [LOGIN] Waiting 100ms before login (1766147076705ms since last login)...
⚡ [FORM SUBMIT] Forcing submission of form: form
🔍 [FORM SUBMIT] Waiting for form selector: form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form submitted successfully
⏳ [LOGIN] Waiting for networkidle after navigation...
⏳ [LOGIN] Waiting for auth state to be persisted...
🔍 [LOGIN] Verifying authentication state...
 ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
🧪 [PLAYLISTS] Running: Empty playlist state
🧭 [NAVIGATION] Navigating via href: /playlists...
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147079427: net::ERR_ABORTED
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147079678: net::ERR_ABORTED
✅ [NAVIGATION] Successfully navigated directly to /playlists
📦 [MODAL] Opening modal via button: /create|créer|nouvelle/i

📊 [PLAYLISTS] === Final Verifications ===
🔴 [PLAYLISTS] Console errors (6):
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [PLAYLISTS] Network errors (8):
 - GET http://localhost:3000/src/index.css?t=1766147079427: 0
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
 - GET http://localhost:3000/src/index.css?t=1766147079678: 0
 6) [chromium] e2e/playlists.spec.ts:309:3 Playlists CRUD should display empty state for new playlist
Error: expect(locator).toBeVisible() failed
Locator: locator('button').filter({ hasText: /create|créer|nouvelle/i }).first()
Expected: visible
Timeout: 10000ms
Error: element(s) not found
Call log:
 - Expect "toBeVisible" with timeout 10000ms
 - waiting for locator('button').filter({ hasText: /create|créer|nouvelle/i }).first()
at utils/test-helpers.ts:784
782 | }
783 |
> 784 | await expect(button).toBeVisible({ timeout: 10000 });
| ^
785 | await button.click();
786 |
787 | // Attendre que la modal soit visible
at openModal (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:784:24)
at /home/senke/git/talas/veza/apps/web/e2e/playlists.spec.ts:314:5
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
test-results/playlists-Playlists-CRUD-s-b545d-mpty-state-for-new-playlist-chromium/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
test-results/playlists-Playlists-CRUD-s-b545d-mpty-state-for-new-playlist-chromium/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
Error Context: test-results/playlists-Playlists-CRUD-s-b545d-mpty-state-for-new-playlist-chromium/error-context.md
[18/38] [chromium] e2e/playlists.spec.ts:347:3 Playlists CRUD should search playlists by name
[chromium] e2e/playlists.spec.ts:347:3 Playlists CRUD should search playlists by name
🔐 [LOGIN] Authenticating as user@example.com...
⏳ [LOGIN] Waiting 100ms before login (1766147101338ms since last login)...
⚡ [FORM SUBMIT] Forcing submission of form: form
🔍 [FORM SUBMIT] Waiting for form selector: form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form submitted successfully
⏳ [LOGIN] Waiting for networkidle after navigation...
⏳ [LOGIN] Waiting for auth state to be persisted...
🔍 [LOGIN] Verifying authentication state...
 ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
🧪 [PLAYLISTS] Running: Search playlists
🧭 [NAVIGATION] Navigating via href: /playlists...
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147104076: net::ERR_ABORTED
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147104374: net::ERR_ABORTED
✅ [NAVIGATION] Successfully navigated directly to /playlists
📦 [MODAL] Opening modal via button: /create|créer|nouvelle/i

📊 [PLAYLISTS] === Final Verifications ===
🔴 [PLAYLISTS] Console errors (6):
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [PLAYLISTS] Network errors (8):
 - GET http://localhost:3000/src/index.css?t=1766147104076: 0
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
 - GET http://localhost:3000/src/index.css?t=1766147104374: 0
 7) [chromium] e2e/playlists.spec.ts:347:3 Playlists CRUD should search playlists by name ───
Error: expect(locator).toBeVisible() failed
Locator: locator('button').filter({ hasText: /create|créer|nouvelle/i }).first()
Expected: visible
Timeout: 10000ms
Error: element(s) not found
Call log:
 - Expect "toBeVisible" with timeout 10000ms
 - waiting for locator('button').filter({ hasText: /create|créer|nouvelle/i }).first()
at utils/test-helpers.ts:784
782 | }
783 |
> 784 | await expect(button).toBeVisible({ timeout: 10000 });
| ^
785 | await button.click();
786 |
787 | // Attendre que la modal soit visible
at openModal (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:784:24)
at /home/senke/git/talas/veza/apps/web/e2e/playlists.spec.ts:356:5
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
test-results/playlists-Playlists-CRUD-should-search-playlists-by-name-chromium/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
test-results/playlists-Playlists-CRUD-should-search-playlists-by-name-chromium/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
Error Context: test-results/playlists-Playlists-CRUD-should-search-playlists-by-name-chromium/error-context.md
[19/38] [chromium] e2e/profile.spec.ts:40:3 User Profile Management should display user profile information
[chromium] e2e/profile.spec.ts:40:3 User Profile Management should display user profile information
🔐 [LOGIN] Authenticating as user@example.com...
⏳ [LOGIN] Waiting 100ms before login (1766147126007ms since last login)...
⚡ [FORM SUBMIT] Forcing submission of form: form
🔍 [FORM SUBMIT] Waiting for form selector: form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form submitted successfully
⏳ [LOGIN] Waiting for networkidle after navigation...
⏳ [LOGIN] Waiting for auth state to be persisted...
🔍 [LOGIN] Verifying authentication state...
 ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
🧪 [PROFILE] Running: Display profile
✅ [PROFILE] Profile page displayed successfully

📊 [PROFILE] === Final Verifications ===
✅ [PROFILE] No console errors
✅ [PROFILE] No network errors
[20/38] [chromium] e2e/profile.spec.ts:106:3 User Profile Management should update username successfully
[chromium] e2e/profile.spec.ts:106:3 User Profile Management should update username successfully
🔐 [LOGIN] Authenticating as user@example.com...
⏳ [LOGIN] Waiting 96ms before login to avoid rate limiting...
⚡ [FORM SUBMIT] Forcing submission of form: form
🔍 [FORM SUBMIT] Waiting for form selector: form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form submitted successfully
⏳ [LOGIN] Waiting for networkidle after navigation...
⏳ [LOGIN] Waiting for auth state to be persisted...
🔍 [LOGIN] Verifying authentication state...
 ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
🧪 [PROFILE] Running: Update username
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147131651: net::ERR_ABORTED
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [REQUEST FAILED] GET http://localhost:3000/src/features/auth/components/LoginForm.tsx?t=1766146873279: net::ERR_ABORTED
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147132058: net::ERR_ABORTED

📊 [PROFILE] === Final Verifications ===
🔴 [PROFILE] Console errors (6):
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [PROFILE] Network errors (9):
 - GET http://localhost:3000/src/index.css?t=1766147131651: 0
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
 - GET http://localhost:3000/src/features/auth/components/LoginForm.tsx?t=1766146873279: 0
 - GET http://localhost:3000/src/index.css?t=1766147132058: 0
 8) [chromium] e2e/profile.spec.ts:106:3 User Profile Management should update username successfully
Error: expect(locator).toBeVisible() failed
Locator: locator('input#username, input[name="username"]').first()
Expected: visible
Timeout: 15000ms
Error: element(s) not found
Call log:
 - Expect "toBeVisible" with timeout 15000ms
 - waiting for locator('input#username, input[name="username"]').first()
114 | // Le champ username utilise id="username" dans ProfileForm
115 | const usernameField = page.locator('input#username, input[name="username"]').first();
> 116 | await expect(usernameField).toBeVisible({ timeout: 15000 });
| ^
117 |
118 | // Si le champ est disabled (mode lecture), cliquer sur le bouton Edit
119 | const isDisabled = await usernameField.isDisabled().catch(() => false);
at /home/senke/git/talas/veza/apps/web/e2e/profile.spec.ts:116:33
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
test-results/profile-User-Profile-Manag-9d6b5-pdate-username-successfully-chromium/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
test-results/profile-User-Profile-Manag-9d6b5-pdate-username-successfully-chromium/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
Error Context: test-results/profile-User-Profile-Manag-9d6b5-pdate-username-successfully-chromium/error-context.md
[21/38] [chromium] e2e/profile.spec.ts:178:3 User Profile Management should update bio successfully
[chromium] e2e/profile.spec.ts:178:3 User Profile Management should update bio successfully
🔐 [LOGIN] Authenticating as user@example.com...
⏳ [LOGIN] Waiting 100ms before login (1766147148376ms since last login)...
⚡ [FORM SUBMIT] Forcing submission of form: form
🔍 [FORM SUBMIT] Waiting for form selector: form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form submitted successfully
⏳ [LOGIN] Waiting for networkidle after navigation...
⏳ [LOGIN] Waiting for auth state to be persisted...
🔍 [LOGIN] Verifying authentication state...
 ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
🧪 [PROFILE] Running: Update bio
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147151050: net::ERR_ABORTED
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
 [PROFILE] Bio field not found, skipping test

📊 [PROFILE] === Final Verifications ===
🔴 [PROFILE] Console errors (2):
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [PROFILE] Network errors (3):
 - GET http://localhost:3000/src/index.css?t=1766147151050: 0
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147151332: net::ERR_ABORTED
[22/38] [chromium] e2e/profile.spec.ts:231:3 User Profile Management should change password successfully
[chromium] e2e/profile.spec.ts:231:3 User Profile Management should change password successfully
🔐 [LOGIN] Authenticating as user@example.com...
⏳ [LOGIN] Waiting 100ms before login (3006ms since last login)...
⚡ [FORM SUBMIT] Forcing submission of form: form
🔍 [FORM SUBMIT] Waiting for form selector: form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form submitted successfully
⏳ [LOGIN] Waiting for networkidle after navigation...
⏳ [LOGIN] Waiting for auth state to be persisted...
🔍 [LOGIN] Verifying authentication state...
 ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
🧪 [PROFILE] Running: Change password
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147154110: net::ERR_ABORTED
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
 [PROFILE] Change password section not found, skipping test

📊 [PROFILE] === Final Verifications ===
🔴 [PROFILE] Console errors (2):
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [PROFILE] Network errors (3):
 - GET http://localhost:3000/src/index.css?t=1766147154110: 0
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [REQUEST FAILED] GET http://localhost:3000/login: net::ERR_ABORTED
[23/38] [chromium] e2e/profile.spec.ts:298:3 User Profile Management should upload profile avatar
[chromium] e2e/profile.spec.ts:298:3 User Profile Management should upload profile avatar
🔐 [LOGIN] Authenticating as user@example.com...
⏳ [LOGIN] Waiting 124ms before login to avoid rate limiting...
⚡ [FORM SUBMIT] Forcing submission of form: form
🔍 [FORM SUBMIT] Waiting for form selector: form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form submitted successfully
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/login: 429
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 429 (Too Many Requests)
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/login: 429
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 429 (Too Many Requests)
🔴 [CONSOLE ERROR] Login error: {code: 429, message: Trop de requêtes. Veuillez patienter avant de réessayer., timestamp: 2025-12-19T12:26:01.551Z, details: undefined, retry_after: undefined}

📊 [PROFILE] === Final Verifications ===
🔴 [PROFILE] Console errors (3):
 - Failed to load resource: the server responded with a status of 429 (Too Many Requests)
 - Failed to load resource: the server responded with a status of 429 (Too Many Requests)
 - Login error: {code: 429, message: Trop de requêtes. Veuillez patienter avant de réessayer., timestamp: 2025-12-19T12:26:01.551Z, details: undefined, retry_after: undefined}
🔴 [PROFILE] Network errors (2):
 - POST http://127.0.0.1:8080/api/v1/auth/login: 429
 - POST http://127.0.0.1:8080/api/v1/auth/login: 429
 9) [chromium] e2e/profile.spec.ts:298:3 User Profile Management should upload profile avatar
TimeoutError: page.waitForURL: Timeout 20000ms exceeded.
=========================== logs ===========================
waiting for navigation until "load"
============================================================
at utils/test-helpers.ts:225
223 |
224 | // Attendre la navigation après login
> 225 | const navigationPromise = page.waitForURL(
| ^
226 | (url) => url.pathname === '/dashboard' || url.pathname === '/',
227 | { timeout: 20000 }
228 | );
at loginAsUser (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:225:34)
at /home/senke/git/talas/veza/apps/web/e2e/profile.spec.ts:34:5
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
test-results/profile-User-Profile-Management-should-upload-profile-avatar-chromium/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
test-results/profile-User-Profile-Management-should-upload-profile-avatar-chromium/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
Error Context: test-results/profile-User-Profile-Management-should-upload-profile-avatar-chromium/error-context.md
[24/38] [chromium] e2e/profile.spec.ts:357:3 User Profile Management should validate username length
[chromium] e2e/profile.spec.ts:357:3 User Profile Management should validate username length
🔐 [LOGIN] Authenticating as user@example.com...
⏳ [LOGIN] Waiting 100ms before login (1766147177045ms since last login)...
⚡ [FORM SUBMIT] Forcing submission of form: form
🔍 [FORM SUBMIT] Waiting for form selector: form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form submitted successfully
⏳ [LOGIN] Waiting for networkidle after navigation...
⏳ [LOGIN] Waiting for auth state to be persisted...
🔍 [LOGIN] Verifying authentication state...
 ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
🧪 [PROFILE] Running: Username validation
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147179757: net::ERR_ABORTED
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147180049: net::ERR_ABORTED

📊 [PROFILE] === Final Verifications ===
🔴 [PROFILE] Console errors (6):
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [PROFILE] Network errors (8):
 - GET http://localhost:3000/src/index.css?t=1766147179757: 0
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
 - GET http://localhost:3000/src/index.css?t=1766147180049: 0
 10) [chromium] e2e/profile.spec.ts:357:3 User Profile Management should validate username length
Error: expect(locator).toBeVisible() failed
Locator: locator('input#username, input[name="username"]').first()
Expected: visible
Timeout: 15000ms
Error: element(s) not found
Call log:
 - Expect "toBeVisible" with timeout 15000ms
 - waiting for locator('input#username, input[name="username"]').first()
364 | // Attendre que le champ username soit visible
365 | const usernameField = page.locator('input#username, input[name="username"]').first();
> 366 | await expect(usernameField).toBeVisible({ timeout: 15000 });
| ^
367 |
368 | // Si disabled, activer le mode édition
369 | const isDisabled = await usernameField.isDisabled().catch(() => false);
at /home/senke/git/talas/veza/apps/web/e2e/profile.spec.ts:366:33
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
test-results/profile-User-Profile-Manag-b2bef-ld-validate-username-length-chromium/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
test-results/profile-User-Profile-Manag-b2bef-ld-validate-username-length-chromium/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
Error Context: test-results/profile-User-Profile-Manag-b2bef-ld-validate-username-length-chromium/error-context.md
[25/38] [chromium] e2e/profile.spec.ts:404:3 User Profile Management should display account information
[chromium] e2e/profile.spec.ts:404:3 User Profile Management should display account information
🔐 [LOGIN] Authenticating as user@example.com...
⏳ [LOGIN] Waiting 100ms before login (1766147196334ms since last login)...
⚡ [FORM SUBMIT] Forcing submission of form: form
🔍 [FORM SUBMIT] Waiting for form selector: form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form submitted successfully
⏳ [LOGIN] Waiting for networkidle after navigation...
⏳ [LOGIN] Waiting for auth state to be persisted...
🔍 [LOGIN] Verifying authentication state...
 ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
🧪 [PROFILE] Running: Display account info
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147199024: net::ERR_ABORTED
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
 [PROFILE] Additional account info not displayed

📊 [PROFILE] === Final Verifications ===
🔴 [PROFILE] Console errors (2):
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [PROFILE] Network errors (3):
 - GET http://localhost:3000/src/index.css?t=1766147199024: 0
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [REQUEST FAILED] GET http://localhost:3000/login: net::ERR_ABORTED
[26/38] [chromium] e2e/profile.spec.ts:434:3 User Profile Management should navigate to advanced settings
[chromium] e2e/profile.spec.ts:434:3 User Profile Management should navigate to advanced settings
🔐 [LOGIN] Authenticating as user@example.com...
⏳ [LOGIN] Waiting 61ms before login to avoid rate limiting...
⚡ [FORM SUBMIT] Forcing submission of form: form
🔍 [FORM SUBMIT] Waiting for form selector: form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form submitted successfully
⏳ [LOGIN] Waiting for networkidle after navigation...
⏳ [LOGIN] Waiting for auth state to be persisted...
🔍 [LOGIN] Verifying authentication state...
 ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
🧪 [PROFILE] Running: Navigate to settings
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147201932: net::ERR_ABORTED
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
 [PROFILE] Advanced settings link not found

📊 [PROFILE] === Final Verifications ===
🔴 [PROFILE] Console errors (2):
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [PROFILE] Network errors (3):
 - GET http://localhost:3000/src/index.css?t=1766147201932: 0
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [REQUEST FAILED] GET http://localhost:3000/login: net::ERR_ABORTED
[27/38] [chromium] e2e/qa-audit.spec.ts:75:3 QA E2E Audit - Veza Frontend 1. Health Check - Backend API
[28/38] [chromium] e2e/qa-audit.spec.ts:85:3 QA E2E Audit - Veza Frontend 2.1. Register - Test complet
[29/38] [chromium] e2e/qa-audit.spec.ts:134:3 QA E2E Audit - Veza Frontend 2.2. Register - Validation errors
[30/38] [chromium] e2e/qa-audit.spec.ts:163:3 QA E2E Audit - Veza Frontend 2.3. Login - Test complet
[31/38] [chromium] e2e/qa-audit.spec.ts:226:3 QA E2E Audit - Veza Frontend 3. Navigation - Toutes les pages
[32/38] [chromium] e2e/qa-audit.spec.ts:264:3 QA E2E Audit - Veza Frontend 4. Buttons and Actions - Dashboard
[33/38] [chromium] e2e/qa-audit.spec.ts:287:3 QA E2E Audit - Veza Frontend 5. Logout
[chromium] e2e/qa-audit.spec.ts:287:3 QA E2E Audit - Veza Frontend 5. Logout
=== QA AUDIT RESULTS ===
✅ Backend API Health: pass
❌ Register - Valid data: fail
 Error: Status 400: {"success":false,"error":{"code":2000,"message":"Validation failed","details":[{"field":"password","message":"password must be at least 12 characters"}],"request_id":"476f2394-a527-4db3-95fd-0f48f5874a17","timestamp":"2025-12-19T12:26:43Z"}}
✅ Register - Email validation: pass
✅ Register - Password validation: pass
❌ Login - Wrong password: fail
 Error: Expected 401, got 403
❌ Login - Valid credentials: fail
 Error: Status 403: {"success":false,"error":{"code":1004,"message":"Invalid credentials","request_id":"62f609bf-efeb-4ce4-ae4c-eecc45e62d95","timestamp":"2025-12-19T12:26:45Z"}}
❌ Navigation - Dashboard: fail
 Error: Console errors: 3, Network errors: 2
❌ Navigation - Chat: fail
❌ Navigation - Library: fail
❌ Navigation - Profile: fail
❌ Navigation - Settings: fail
❌ Navigation - Marketplace: fail
✅ Dashboard - Buttons: pass
[34/38] [chromium] e2e/track_lifecycle.spec.ts:37:5 Track Lifecycle - CRUD Complete Track Lifecycle: Upload -> Verify -> Delete
[chromium] e2e/track_lifecycle.spec.ts:37:5 Track Lifecycle - CRUD Complete Track Lifecycle: Upload -> Verify -> Delete
🔍 [LIFECYCLE] Step 1: Login
🔐 [LOGIN] Authenticating as user@example.com...
⏳ [LOGIN] Waiting 100ms before login (22649ms since last login)...
⚡ [FORM SUBMIT] Forcing submission of form: form
🔍 [FORM SUBMIT] Waiting for form selector: form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form submitted successfully
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/login: 429
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 429 (Too Many Requests)
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/login: 429
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 429 (Too Many Requests)
🔴 [CONSOLE ERROR] Login error: {code: 429, message: Trop de requêtes. Veuillez patienter avant de réessayer., timestamp: 2025-12-19T12:27:09.182Z, details: undefined, retry_after: undefined}

📊 [LIFECYCLE] === Final Verifications ===
🔴 [LIFECYCLE] Console errors (3):
 - Failed to load resource: the server responded with a status of 429 (Too Many Requests)
 - Failed to load resource: the server responded with a status of 429 (Too Many Requests)
 - Login error: {code: 429, message: Trop de requêtes. Veuillez patienter avant de réessayer., timestamp: 2025-12-19T12:27:09.182Z, details: undefined, retry_after: undefined}
🔴 [LIFECYCLE] Network errors (2):
 - POST http://127.0.0.1:8080/api/v1/auth/login: 429
 - POST http://127.0.0.1:8080/api/v1/auth/login: 429
 11) [chromium] e2e/track_lifecycle.spec.ts:37:5 Track Lifecycle - CRUD Complete Track Lifecycle: Upload -> Verify -> Delete
TimeoutError: page.waitForURL: Timeout 20000ms exceeded.
=========================== logs ===========================
waiting for navigation until "load"
============================================================
at utils/test-helpers.ts:225
223 |
224 | // Attendre la navigation après login
> 225 | const navigationPromise = page.waitForURL(
| ^
226 | (url) => url.pathname === '/dashboard' || url.pathname === '/',
227 | { timeout: 20000 }
228 | );
at loginAsUser (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:225:34)
at /home/senke/git/talas/veza/apps/web/e2e/track_lifecycle.spec.ts:40:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
test-results/track_lifecycle-Track-Life-b1939-le-Upload---Verify---Delete-chromium/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
test-results/track_lifecycle-Track-Life-b1939-le-Upload---Verify---Delete-chromium/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
Error Context: test-results/track_lifecycle-Track-Life-b1939-le-Upload---Verify---Delete-chromium/error-context.md
[35/38] [chromium] e2e/tracks_upload_chunked.spec.ts:47:3 Chunked Upload Flow should upload large file (15 MB) using chunked upload
[chromium] e2e/tracks_upload_chunked.spec.ts:47:3 Chunked Upload Flow should upload large file (15 MB) using chunked upload
🧪 [CHUNKED UPLOAD] Running: Large file upload with chunking
🔍 [CHUNKED UPLOAD] Step 1: Login
🔐 [LOGIN] Authenticating as user@example.com...
⏳ [LOGIN] Waiting 100ms before login (1766147244650ms since last login)...
⚡ [FORM SUBMIT] Forcing submission of form: form
🔍 [FORM SUBMIT] Waiting for form selector: form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form submitted successfully
⏳ [LOGIN] Waiting for networkidle after navigation...
⏳ [LOGIN] Waiting for auth state to be persisted...
🔍 [LOGIN] Verifying authentication state...
 ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
🔍 [CHUNKED UPLOAD] Step 2: Navigate to /library
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147248337: net::ERR_ABORTED
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147248607: net::ERR_ABORTED
🔍 [CHUNKED UPLOAD] Step 3: Open upload modal
📦 [MODAL] Opening modal via button: /upload/i

📊 [CHUNKED UPLOAD] === Final Verifications ===
🔴 [CHUNKED UPLOAD] Console errors (6):
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [CHUNKED UPLOAD] Network errors (8):
 - GET http://localhost:3000/src/index.css?t=1766147248337: 0
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
 - GET http://localhost:3000/src/index.css?t=1766147248607: 0
 12) [chromium] e2e/tracks_upload_chunked.spec.ts:47:3 Chunked Upload Flow should upload large file (15 MB) using chunked upload
Error: expect(locator).toBeVisible() failed
Locator: locator('button').filter({ hasText: /upload/i }).first()
Expected: visible
Timeout: 10000ms
Error: element(s) not found
Call log:
 - Expect "toBeVisible" with timeout 10000ms
 - waiting for locator('button').filter({ hasText: /upload/i }).first()
at utils/test-helpers.ts:784
782 | }
783 |
> 784 | await expect(button).toBeVisible({ timeout: 10000 });
| ^
785 | await button.click();
786 |
787 | // Attendre que la modal soit visible
at openModal (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:784:24)
at /home/senke/git/talas/veza/apps/web/e2e/tracks_upload_chunked.spec.ts:95:5
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
test-results/tracks_upload_chunked-Chun-a2080--15-MB-using-chunked-upload-chromium/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
test-results/tracks_upload_chunked-Chun-a2080--15-MB-using-chunked-upload-chromium/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
Error Context: test-results/tracks_upload_chunked-Chun-a2080--15-MB-using-chunked-upload-chromium/error-context.md
[36/38] [chromium] e2e/tracks_upload_chunked.spec.ts:281:3 Chunked Upload Flow should handle very large file (25 MB) with chunking
[chromium] e2e/tracks_upload_chunked.spec.ts:281:3 Chunked Upload Flow should handle very large file (25 MB) with chunking
🧪 [CHUNKED UPLOAD] Running: Very large file upload (25 MB)
🔐 [LOGIN] Authenticating as user@example.com...
⏳ [LOGIN] Waiting 100ms before login (1766147260572ms since last login)...
⚡ [FORM SUBMIT] Forcing submission of form: form
🔍 [FORM SUBMIT] Waiting for form selector: form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form submitted successfully
⏳ [LOGIN] Waiting for networkidle after navigation...
⏳ [LOGIN] Waiting for auth state to be persisted...
🔍 [LOGIN] Verifying authentication state...
 ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147264432: net::ERR_ABORTED
📦 [MODAL] Opening modal via button: /upload/i

📊 [CHUNKED UPLOAD] === Final Verifications ===
🔴 [CHUNKED UPLOAD] Console errors (6):
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [CHUNKED UPLOAD] Network errors (7):
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
 - GET http://localhost:3000/src/index.css?t=1766147264432: 0
 13) [chromium] e2e/tracks_upload_chunked.spec.ts:281:3 Chunked Upload Flow should handle very large file (25 MB) with chunking
Error: expect(locator).toBeVisible() failed
Locator: locator('button').filter({ hasText: /upload/i }).first()
Expected: visible
Timeout: 10000ms
Error: element(s) not found
Call log:
 - Expect "toBeVisible" with timeout 10000ms
 - waiting for locator('button').filter({ hasText: /upload/i }).first()
at utils/test-helpers.ts:784
782 | }
783 |
> 784 | await expect(button).toBeVisible({ timeout: 10000 });
| ^
785 | await button.click();
786 |
787 | // Attendre que la modal soit visible
at openModal (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:784:24)
at /home/senke/git/talas/veza/apps/web/e2e/tracks_upload_chunked.spec.ts:305:5
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
test-results/tracks_upload_chunked-Chun-88fad-ge-file-25-MB-with-chunking-chromium/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
test-results/tracks_upload_chunked-Chun-88fad-ge-file-25-MB-with-chunking-chromium/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
Error Context: test-results/tracks_upload_chunked-Chun-88fad-ge-file-25-MB-with-chunking-chromium/error-context.md
[37/38] [chromium] e2e/tracks_upload_chunked.spec.ts:364:3 Chunked Upload Flow should use direct upload for small files (< 10 MB)
[chromium] e2e/tracks_upload_chunked.spec.ts:364:3 Chunked Upload Flow should use direct upload for small files (< 10 MB)
🧪 [CHUNKED UPLOAD] Running: Small file direct upload
🔐 [LOGIN] Authenticating as user@example.com...
⏳ [LOGIN] Waiting 100ms before login (1766147276319ms since last login)...
⚡ [FORM SUBMIT] Forcing submission of form: form
🔍 [FORM SUBMIT] Waiting for form selector: form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form submitted successfully
⏳ [LOGIN] Waiting for networkidle after navigation...
⏳ [LOGIN] Waiting for auth state to be persisted...
🔍 [LOGIN] Verifying authentication state...
 ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147280197: net::ERR_ABORTED
📦 [MODAL] Opening modal via button: /upload/i

📊 [CHUNKED UPLOAD] === Final Verifications ===
🔴 [CHUNKED UPLOAD] Console errors (6):
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [CHUNKED UPLOAD] Network errors (7):
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - GET http://127.0.0.1:8080/api/v1/auth/me: 401
 - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
 - GET http://localhost:3000/src/index.css?t=1766147280197: 0
 14) [chromium] e2e/tracks_upload_chunked.spec.ts:364:3 Chunked Upload Flow should use direct upload for small files (< 10 MB)
Error: expect(locator).toBeVisible() failed
Locator: locator('button').filter({ hasText: /upload/i }).first()
Expected: visible
Timeout: 10000ms
Error: element(s) not found
Call log:
 - Expect "toBeVisible" with timeout 10000ms
 - waiting for locator('button').filter({ hasText: /upload/i }).first()
at utils/test-helpers.ts:784
782 | }
783 |
> 784 | await expect(button).toBeVisible({ timeout: 10000 });
| ^
785 | await button.click();
786 |
787 | // Attendre que la modal soit visible
at openModal (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:784:24)
at /home/senke/git/talas/veza/apps/web/e2e/tracks_upload_chunked.spec.ts:387:5
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
test-results/tracks_upload_chunked-Chun-0b307-load-for-small-files-10-MB--chromium/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
test-results/tracks_upload_chunked-Chun-0b307-load-for-small-files-10-MB--chromium/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
Error Context: test-results/tracks_upload_chunked-Chun-0b307-load-for-small-files-10-MB--chromium/error-context.md
[38/38] [chromium] e2e/upload_flow.spec.ts:36:3 Upload Flow - Happy Path Complete Upload Flow
[chromium] e2e/upload_flow.spec.ts:36:3 Upload Flow - Happy Path Complete Upload Flow
🔍 [UPLOAD TEST] Step 1: Logging in...
🔐 [LOGIN] Authenticating as user@example.com...
⏳ [LOGIN] Waiting 100ms before login (1766147292059ms since last login)...
⚡ [FORM SUBMIT] Forcing submission of form: form
🔍 [FORM SUBMIT] Waiting for form selector: form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form submitted successfully
⏳ [LOGIN] Waiting for networkidle after navigation...
⏳ [LOGIN] Waiting for auth state to be persisted...
🔍 [LOGIN] Verifying authentication state...
 ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
🔍 [UPLOAD TEST] Step 2: Navigating to /library...
🧭 [NAVIGATION] Navigating via href: /library...
✅ [NAVIGATION] Successfully navigated via href: /library
🔍 [UPLOAD TEST] Step 3: Opening upload modal...
📦 [MODAL] Opening modal via button: /upload/i
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/playlists?page=20&limit=0: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/playlists?page=20&limit=0: 401
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
✅ [MODAL] Modal opened successfully
🔍 [UPLOAD TEST] Step 4: Selecting and uploading file...
✅ [UPLOAD TEST] File selected with mimeType audio/mpeg
✅ [UPLOAD TEST] File displayed in modal
🔍 [UPLOAD TEST] Step 5: Filling metadata...
✏ [FILL] Filling field input[id="title"] with value: Test Song
✅ [FILL] Field input[id="title"] filled successfully
✏ [FILL] Filling field input[id="artist"] with value: QA Bot
✅ [FILL] Field input[id="artist"] filled successfully
✅ [UPLOAD TEST] Metadata filled
🔍 [UPLOAD TEST] Step 6: Starting upload...
⚡ [FORM SUBMIT] Forcing submission of form: form#upload-track-form
🔍 [FORM SUBMIT] Waiting for form selector: form#upload-track-form
⏳ [FORM SUBMIT] Waiting for React to update state...
🚀 [FORM SUBMIT] Submitting form...
✅ [FORM SUBMIT] Form form#upload-track-form submitted successfully
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/tracks: 401
📡 [UPLOAD TEST] Upload response status: 401
🔔 [TOAST] Waiting for success message...
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147296671: net::ERR_ABORTED
🔍 [UPLOAD TEST] Step 7: Verifying track appears in list...
🔴 [REQUEST FAILED] GET http://localhost:3000/src/main.tsx?t=1766147296671: net::ERR_ABORTED
🔴 [REQUEST FAILED] GET http://localhost:3000/@react-refresh: net::ERR_ABORTED
🔴 [REQUEST FAILED] GET http://localhost:3000/@vite/client: net::ERR_ABORTED

📊 [UPLOAD TEST] === Final Verifications ===
🔴 [UPLOAD TEST] Console errors (4):
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 401 (Unauthorized)
 - Failed to load resource: the server responded with a status of 403 (Forbidden)
🔴 [UPLOAD TEST] Network errors (8):
 - GET http://127.0.0.1:8080/api/v1/playlists?page=20&limit=0: 401
 - GET http://127.0.0.1:8080/api/v1/playlists?page=20&limit=0: 401
 - POST http://127.0.0.1:8080/api/v1/tracks: 401
 - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
 - GET http://localhost:3000/src/index.css?t=1766147296671: 0
 - GET http://localhost:3000/src/main.tsx?t=1766147296671: 0
 - GET http://localhost:3000/@react-refresh: 0
 - GET http://localhost:3000/@vite/client: 0
 15) [chromium] e2e/upload_flow.spec.ts:36:3 Upload Flow - Happy Path Complete Upload Flow ──
Error: expect(locator).toBeVisible() failed
Locator: locator('table, [role="table"], .track-list').first()
Expected: visible
Timeout: 10000ms
Error: element(s) not found
Call log:
 - Expect "toBeVisible" with timeout 10000ms
 - waiting for locator('table, [role="table"], .track-list').first()
144 | // Vérifier que la piste apparaît
145 | const trackList = page.locator('table, [role="table"], .track-list').first();
> 146 | await expect(trackList).toBeVisible({ timeout: 10000 });
| ^
147 |
148 | const newTrack = page.locator('text=Test Song, text=test-audio').first();
149 |
at /home/senke/git/talas/veza/apps/web/e2e/upload_flow.spec.ts:146:29
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
test-results/upload_flow-Upload-Flow---Happy-Path-Complete-Upload-Flow-chromium/test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
test-results/upload_flow-Upload-Flow---Happy-Path-Complete-Upload-Flow-chromium/video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
Error Context: test-results/upload_flow-Upload-Flow---Happy-Path-Complete-Upload-Flow-chromium/error-context.md
 15 failed
[chromium] e2e/playlists.spec.ts:44:3 Playlists CRUD should create a new playlist successfully
[chromium] e2e/playlists.spec.ts:94:3 Playlists CRUD should display list of playlists ────
[chromium] e2e/playlists.spec.ts:124:3 Playlists CRUD should update playlist name and description
[chromium] e2e/playlists.spec.ts:187:3 Playlists CRUD should add track to playlist ───────
[chromium] e2e/playlists.spec.ts:247:3 Playlists CRUD should delete playlist successfully
[chromium] e2e/playlists.spec.ts:309:3 Playlists CRUD should display empty state for new playlist
[chromium] e2e/playlists.spec.ts:347:3 Playlists CRUD should search playlists by name ────
[chromium] e2e/profile.spec.ts:106:3 User Profile Management should update username successfully
[chromium] e2e/profile.spec.ts:298:3 User Profile Management should upload profile avatar
[chromium] e2e/profile.spec.ts:357:3 User Profile Management should validate username length
[chromium] e2e/track_lifecycle.spec.ts:37:5 Track Lifecycle - CRUD Complete Track Lifecycle: Upload -> Verify -> Delete
[chromium] e2e/tracks_upload_chunked.spec.ts:47:3 Chunked Upload Flow should upload large file (15 MB) using chunked upload
[chromium] e2e/tracks_upload_chunked.spec.ts:281:3 Chunked Upload Flow should handle very large file (25 MB) with chunking
[chromium] e2e/tracks_upload_chunked.spec.ts:364:3 Chunked Upload Flow should use direct upload for small files (< 10 MB)
[chromium] e2e/upload_flow.spec.ts:36:3 Upload Flow - Happy Path Complete Upload Flow ────
1 skipped
22 passed (6.8m)
 Serving HTML report at http://localhost:9323. Press Ctrl+C to quit.