veza/apps/web/full_test_result.txt

2818 lines
124 KiB
Text
Raw Permalink Normal View History

2025-12-22 21:00:50 +00:00
> 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.