2818 lines
124 KiB
Text
2818 lines
124 KiB
Text
|
|
|
|||
|
|
> veza-frontend@1.0.0 test:e2e
|
|||
|
|
> playwright test
|
|||
|
|
|
|||
|
|
|
|||
|
|
Running 38 tests using 1 worker
|
|||
|
|
|
|||
|
|
[1A[2K[1/38] [chromium] › e2e/auth.spec.ts:37:3 › Authentication Flow › should login successfully with valid credentials
|
|||
|
|
[1A[2K[chromium] › e2e/auth.spec.ts:37:3 › Authentication Flow › should login successfully with valid credentials
|
|||
|
|
🧪 [AUTH TEST] Running: Login with valid credentials
|
|||
|
|
|
|||
|
|
[1A[2K✏️ [FILL] Filling field input[type="email"], input[name="email"] with value: user@example.com
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FILL] Field input[type="email"], input[name="email"] filled successfully
|
|||
|
|
|
|||
|
|
[1A[2K✏️ [FILL] Filling field input[type="password"], input[name="password"] with value: password123
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FILL] Field input[type="password"], input[name="password"] filled successfully
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [AUTH TEST] Waiting for Zustand to persist auth-storage...
|
|||
|
|
|
|||
|
|
[1A[2K ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
|
|||
|
|
|
|||
|
|
[1A[2K✅ [AUTH TEST] Login successful (token in storage)
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [AUTH TEST] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K✅ [AUTH TEST] No console errors
|
|||
|
|
|
|||
|
|
[1A[2K✅ [AUTH TEST] No network errors
|
|||
|
|
|
|||
|
|
[1A[2K[2/38] [chromium] › e2e/auth.spec.ts:103:3 › Authentication Flow › should show error with invalid credentials
|
|||
|
|
[1A[2K[chromium] › e2e/auth.spec.ts:103:3 › Authentication Flow › should show error with invalid credentials
|
|||
|
|
🧪 [AUTH TEST] Running: Login with invalid credentials
|
|||
|
|
|
|||
|
|
[1A[2K✏️ [FILL] Filling field input[type="email"], input[name="email"] with value: wrong@example.com
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FILL] Field input[type="email"], input[name="email"] filled successfully
|
|||
|
|
|
|||
|
|
[1A[2K✏️ [FILL] Filling field input[type="password"], input[name="password"] with value: wrongpassword
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FILL] Field input[type="password"], input[name="password"] filled successfully
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K🔔 [TOAST] Waiting for error message...
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/login: 403
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Login error: {code: 1004, message: Invalid credentials, details: undefined, request_id: b10e0ec0-1bd2-4d5b-83d8-1b343281ce25, timestamp: 2025-12-19T12:21:46Z}
|
|||
|
|
|
|||
|
|
[1A[2K✅ [TOAST] error message: Invalid credentials
|
|||
|
|
|
|||
|
|
[1A[2K✅ [AUTH TEST] Error shown for invalid credentials
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [AUTH TEST] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [AUTH TEST] Console errors (2):
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K - Login error: {code: 1004, message: Invalid credentials, details: undefined, request_id: b10e0ec0-1bd2-4d5b-83d8-1b343281ce25, timestamp: 2025-12-19T12:21:46Z}
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [AUTH TEST] Network errors (1):
|
|||
|
|
|
|||
|
|
[1A[2K - POST http://127.0.0.1:8080/api/v1/auth/login: 403
|
|||
|
|
|
|||
|
|
[1A[2K[3/38] [chromium] › e2e/auth.spec.ts:129:3 › Authentication Flow › should register a new user successfully
|
|||
|
|
[1A[2K[chromium] › e2e/auth.spec.ts:129:3 › Authentication Flow › should register a new user successfully
|
|||
|
|
🧪 [AUTH TEST] Running: User registration
|
|||
|
|
|
|||
|
|
[1A[2K✏️ [FILL] Filling field input[name="email"], input#email with value: test-1766146906997@example.com
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FILL] Field input[name="email"], input#email filled successfully
|
|||
|
|
|
|||
|
|
[1A[2K✏️ [FILL] Filling field input[name="username"], input#username with value: testuser1766146906997
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FILL] Field input[name="username"], input#username filled successfully
|
|||
|
|
|
|||
|
|
[1A[2K✏️ [FILL] Filling field input[name="password"], input#password with value: Test123456789!
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FILL] Field input[name="password"], input#password filled successfully
|
|||
|
|
|
|||
|
|
[1A[2K✏️ [FILL] Filling field input[name="passwordConfirm"], input[name="password_confirm"], input[name="confirmPassword"], input#passwordConfirm with value: Test123456789!
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FILL] Field input[name="passwordConfirm"], input[name="password_confirm"], input[name="confirmPassword"], input#passwordConfirm filled successfully
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] [AUTH] Tokens not found in register response: {user: Object, token: Object}
|
|||
|
|
|
|||
|
|
[1A[2K✅ [AUTH TEST] Registration successful with auto-login
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [AUTH TEST] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [AUTH TEST] Console errors (1):
|
|||
|
|
|
|||
|
|
[1A[2K - [AUTH] Tokens not found in register response: {user: Object, token: Object}
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K✅ [AUTH TEST] No network errors
|
|||
|
|
|
|||
|
|
[1A[2K[4/38] [chromium] › e2e/auth.spec.ts:226:3 › Authentication Flow › should show error when registering with existing email
|
|||
|
|
[1A[2K[chromium] › e2e/auth.spec.ts:226:3 › Authentication Flow › should show error when registering with existing email
|
|||
|
|
🧪 [AUTH TEST] Running: Registration with existing email
|
|||
|
|
|
|||
|
|
[1A[2K✏️ [FILL] Filling field input[name="email"], input#email with value: user@example.com
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FILL] Field input[name="email"], input#email filled successfully
|
|||
|
|
|
|||
|
|
[1A[2K✏️ [FILL] Filling field input[name="username"], input#username with value: existinguser
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FILL] Field input[name="username"], input#username filled successfully
|
|||
|
|
|
|||
|
|
[1A[2K✏️ [FILL] Filling field input[name="password"], input#password with value: Test123456789!
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FILL] Field input[name="password"], input#password filled successfully
|
|||
|
|
|
|||
|
|
[1A[2K✏️ [FILL] Filling field input[name="passwordConfirm"], input[name="password_confirm"], input[name="confirmPassword"], input#passwordConfirm with value: Test123456789!
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FILL] Field input[name="passwordConfirm"], input[name="password_confirm"], input[name="confirmPassword"], input#passwordConfirm filled successfully
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/register: 500
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [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}
|
|||
|
|
|
|||
|
|
[1A[2K✅ [AUTH TEST] Error shown for existing email: "Failed to create user"
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [AUTH TEST] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [AUTH TEST] Console errors (2):
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 500 (Internal Server Error)
|
|||
|
|
|
|||
|
|
[1A[2K - Register error: {code: 9000, message: Failed to create user, details: undefined, request_id: b5921d56-0cf7-49c9-86c6-3265adc462fe, timestamp: 2025-12-19T12:21:51Z}
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [AUTH TEST] Network errors (1):
|
|||
|
|
|
|||
|
|
[1A[2K - POST http://127.0.0.1:8080/api/v1/auth/register: 500
|
|||
|
|
|
|||
|
|
[1A[2K[5/38] [chromium] › e2e/auth.spec.ts:286:3 › Authentication Flow › should logout successfully
|
|||
|
|
[1A[2K[chromium] › e2e/auth.spec.ts:286:3 › Authentication Flow › should logout successfully
|
|||
|
|
🧪 [AUTH TEST] Running: Logout
|
|||
|
|
|
|||
|
|
[1A[2K🔐 [LOGIN] Authenticating as user@example.com...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting 100ms before login (1766146913593ms since last login)...
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for networkidle after navigation...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for auth state to be persisted...
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [LOGIN] Verifying authentication state...
|
|||
|
|
|
|||
|
|
[1A[2K ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
|
|||
|
|
|
|||
|
|
[1A[2K✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [AUTH TEST] Checking token presence before logout...
|
|||
|
|
|
|||
|
|
[1A[2K ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
|
|||
|
|
|
|||
|
|
[1A[2K✅ [AUTH TEST] Token present before logout: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik...
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/logout: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/logout: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K✅ [AUTH TEST] Logout successful
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [AUTH TEST] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [AUTH TEST] Console errors (2):
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [AUTH TEST] Network errors (2):
|
|||
|
|
|
|||
|
|
[1A[2K - POST http://127.0.0.1:8080/api/v1/auth/logout: 401
|
|||
|
|
|
|||
|
|
[1A[2K - POST http://127.0.0.1:8080/api/v1/auth/logout: 401
|
|||
|
|
|
|||
|
|
[1A[2K[6/38] [chromium] › e2e/auth.spec.ts:357:3 › Authentication Flow › should redirect to login when accessing protected route without auth
|
|||
|
|
[1A[2K[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
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/node_modules/.vite/deps/@hookform_resolvers_zod.js?v=490fee7e: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/node_modules/.vite/deps/chunk-HL7VHMNJ.js?v=490fee7e: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K✅ [AUTH TEST] Route guard working correctly
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [AUTH TEST] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K✅ [AUTH TEST] No console errors
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [AUTH TEST] Network errors (2):
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/node_modules/.vite/deps/@hookform_resolvers_zod.js?v=490fee7e: 0
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/node_modules/.vite/deps/chunk-HL7VHMNJ.js?v=490fee7e: 0
|
|||
|
|
|
|||
|
|
[1A[2K[7/38] [chromium] › e2e/auth.spec.ts:379:3 › Authentication Flow › should logout after page refresh (memory token architecture)
|
|||
|
|
[1A[2K[chromium] › e2e/auth.spec.ts:379:3 › Authentication Flow › should logout after page refresh (memory token architecture)
|
|||
|
|
🧪 [AUTH TEST] Running: Memory token refresh test
|
|||
|
|
|
|||
|
|
[1A[2K🔐 [LOGIN] Authenticating as user@example.com...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting 100ms before login (3878ms since last login)...
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for networkidle after navigation...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for auth state to be persisted...
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [LOGIN] Verifying authentication state...
|
|||
|
|
|
|||
|
|
[1A[2K ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
|
|||
|
|
|
|||
|
|
[1A[2K✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
|
|||
|
|
|
|||
|
|
[1A[2K✅ [AUTH TEST] Authenticated before refresh
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766146920177: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766146920453: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K✅ [AUTH TEST] Correctly redirected to login after refresh (memory token lost)
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [AUTH TEST] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [AUTH TEST] Console errors (6):
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [AUTH TEST] Network errors (8):
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766146920177: 0
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766146920453: 0
|
|||
|
|
|
|||
|
|
[1A[2K[8/38] [chromium] › e2e/auth.spec.ts:440:3 › Authentication Flow › should validate login form fields
|
|||
|
|
[1A[2K[chromium] › e2e/auth.spec.ts:440:3 › Authentication Flow › should validate login form fields
|
|||
|
|
🧪 [AUTH TEST] Running: Login form validation
|
|||
|
|
|
|||
|
|
[1A[2K✅ [AUTH TEST] Form validation prevented submission (stayed on login page)
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [AUTH TEST] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K✅ [AUTH TEST] No console errors
|
|||
|
|
|
|||
|
|
[1A[2K✅ [AUTH TEST] No network errors
|
|||
|
|
|
|||
|
|
[1A[2K[9/38] [chromium] › e2e/auth.spec.ts:497:3 › Authentication Flow › should show error when passwords do not match during registration
|
|||
|
|
[1A[2K[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
|
|||
|
|
|
|||
|
|
[1A[2K✏️ [FILL] Filling field input[name="email"], input#email with value: newuser@example.com
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FILL] Field input[name="email"], input#email filled successfully
|
|||
|
|
|
|||
|
|
[1A[2K✏️ [FILL] Filling field input[name="password"], input#password with value: Password123456!
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FILL] Field input[name="password"], input#password filled successfully
|
|||
|
|
|
|||
|
|
[1A[2K✏️ [FILL] Filling field input[name="passwordConfirm"], input[name="password_confirm"], input[name="confirmPassword"] with value: DifferentPassword!
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FILL] Field input[name="passwordConfirm"], input[name="password_confirm"], input[name="confirmPassword"] filled successfully
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K✅ [AUTH TEST] Password mismatch error shown (found by CSS)
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [AUTH TEST] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K✅ [AUTH TEST] No console errors
|
|||
|
|
|
|||
|
|
[1A[2K✅ [AUTH TEST] No network errors
|
|||
|
|
|
|||
|
|
[1A[2K[10/38] [chromium] › e2e/deep_audit.spec.ts:254:3 › Deep E2E Runtime Audit › Complete User Journey - Runtime Audit
|
|||
|
|
[1A[2K[chromium] › e2e/deep_audit.spec.ts:254:3 › Deep E2E Runtime Audit › Complete User Journey - Runtime Audit
|
|||
|
|
🔍 [AUDIT] Starting comprehensive E2E audit...
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [AUDIT] Step 1: Navigating to login...
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [AUDIT] Step 2: Submitting login form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [AUDIT] Login successful, redirected to: http://localhost:3000/dashboard
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [AUDIT] Step 3: Testing page navigation and lazy loading...
|
|||
|
|
|
|||
|
|
[1A[2K → Checking /dashboard...
|
|||
|
|
|
|||
|
|
[1A[2K → Navigating to /profile...
|
|||
|
|
|
|||
|
|
[1A[2K → Navigating to /settings...
|
|||
|
|
|
|||
|
|
[1A[2K → Navigating to /library...
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/playlists?page=20&limit=0 -> 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/playlists?page=20&limit=0 -> 401
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [AUDIT] === AUDIT SUMMARY ===
|
|||
|
|
|
|||
|
|
[1A[2KGlobal Status: STABLE
|
|||
|
|
|
|||
|
|
[1A[2KLogin Success: true
|
|||
|
|
|
|||
|
|
[1A[2KPages Checked: 4
|
|||
|
|
|
|||
|
|
[1A[2KTotal Issues: 3
|
|||
|
|
|
|||
|
|
[1A[2K - Critical: 0
|
|||
|
|
|
|||
|
|
[1A[2K - High: 3
|
|||
|
|
|
|||
|
|
[1A[2K - Medium: 0
|
|||
|
|
|
|||
|
|
[1A[2K - Low: 0
|
|||
|
|
|
|||
|
|
[1A[2KBy Category:
|
|||
|
|
|
|||
|
|
[1A[2K - NETWORK: 2
|
|||
|
|
|
|||
|
|
[1A[2K - CONSOLE: 1
|
|||
|
|
|
|||
|
|
[1A[2K - NAVIGATION: 0
|
|||
|
|
|
|||
|
|
[1A[2K - UX: 0
|
|||
|
|
|
|||
|
|
[1A[2K✅ [AUDIT] Application appears STABLE
|
|||
|
|
|
|||
|
|
[1A[2K📄 [AUDIT] JSON report written to: /home/senke/git/talas/veza/apps/web/RUNTIME_ISSUES.json
|
|||
|
|
|
|||
|
|
[1A[2K📄 [AUDIT] Markdown report written to: /home/senke/git/talas/veza/apps/web/RUNTIME_AUDIT_REPORT.md
|
|||
|
|
|
|||
|
|
[1A[2K[11/38] [chromium] › e2e/diagnostic.spec.ts:55:3 › Full Stack Compatibility Diagnostic › Login Flow - Complete Diagnostic
|
|||
|
|
[1A[2K[chromium] › e2e/diagnostic.spec.ts:55:3 › Full Stack Compatibility Diagnostic › Login Flow - Complete Diagnostic
|
|||
|
|
🔍 [DIAGNOSTIC] Navigation vers /login...
|
|||
|
|
|
|||
|
|
[1A[2K📄 [DIAGNOSTIC] Nombre d'inputs sur la page: [33m3[39m
|
|||
|
|
|
|||
|
|
[1A[2K📄 [DIAGNOSTIC] Nombre de boutons sur la page: [33m1[39m
|
|||
|
|
|
|||
|
|
[1A[2K📄 [DIAGNOSTIC] Page title: Veza - Plateforme de streaming musical
|
|||
|
|
|
|||
|
|
[1A[2K📄 [DIAGNOSTIC] URL actuelle: http://localhost:3000/login
|
|||
|
|
|
|||
|
|
[1A[2K📄 [DIAGNOSTIC] Email input visible: [33mtrue[39m
|
|||
|
|
|
|||
|
|
[1A[2K📄 [DIAGNOSTIC] Password input visible: [33mtrue[39m
|
|||
|
|
|
|||
|
|
[1A[2K📄 [DIAGNOSTIC] Submit button visible: [33mtrue[39m
|
|||
|
|
|
|||
|
|
[1A[2K📄 [DIAGNOSTIC] Page contient "form": [33mtrue[39m
|
|||
|
|
|
|||
|
|
[1A[2K✅ [DIAGNOSTIC] Formulaire de login visible
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [DIAGNOSTIC] Remplissage du formulaire...
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [DIAGNOSTIC] Clic sur le bouton de connexion...
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 429 (Too Many Requests)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 429 (Too Many Requests)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [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}
|
|||
|
|
|
|||
|
|
[1A[2K⚠️ [DIAGNOSTIC] Pas de navigation ni d'erreur visible. URL actuelle: http://localhost:3000/login
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [DIAGNOSTIC] Vérification du localStorage...
|
|||
|
|
|
|||
|
|
[1A[2K📦 [DIAGNOSTIC] LocalStorage: [ [32m'i18nextLng'[39m, [32m'auth-storage'[39m ]
|
|||
|
|
|
|||
|
|
[1A[2K❌ [DIAGNOSTIC] Token d'accès absent
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [DIAGNOSTIC] === RAPPORT DE DIAGNOSTIC ===
|
|||
|
|
|
|||
|
|
[1A[2KErreurs réseau: [33m2[39m
|
|||
|
|
|
|||
|
|
[1A[2KErreurs console: [33m3[39m
|
|||
|
|
|
|||
|
|
[1A[2KErreurs CORS: [33m0[39m
|
|||
|
|
|
|||
|
|
[1A[2KNavigation réussie: [33mfalse[39m
|
|||
|
|
|
|||
|
|
[1A[2KToken présent: [33mfalse[39m
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
🔴 Erreurs réseau:
|
|||
|
|
|
|||
|
|
[1A[2K - POST http://127.0.0.1:8080/api/v1/auth/login: HTTP 429
|
|||
|
|
|
|||
|
|
[1A[2K - POST http://127.0.0.1:8080/api/v1/auth/login: HTTP 429
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
🔴 Erreurs console:
|
|||
|
|
|
|||
|
|
[1A[2K - [error] Failed to load resource: the server responded with a status of 429 (Too Many Requests)
|
|||
|
|
|
|||
|
|
[1A[2K - [error] Failed to load resource: the server responded with a status of 429 (Too Many Requests)
|
|||
|
|
|
|||
|
|
[1A[2K - [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}
|
|||
|
|
|
|||
|
|
[1A[2K[12/38] [chromium] › e2e/playlists.spec.ts:44:3 › Playlists CRUD › should create a new playlist successfully
|
|||
|
|
[1A[2K[chromium] › e2e/playlists.spec.ts:44:3 › Playlists CRUD › should create a new playlist successfully
|
|||
|
|
🔐 [LOGIN] Authenticating as user@example.com...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting 100ms before login (40707ms since last login)...
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/login: 429
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 429 (Too Many Requests)
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for networkidle after navigation...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for auth state to be persisted...
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [LOGIN] Verifying authentication state...
|
|||
|
|
|
|||
|
|
[1A[2K ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
|
|||
|
|
|
|||
|
|
[1A[2K✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
|
|||
|
|
|
|||
|
|
[1A[2K🧪 [PLAYLISTS] Running: Create new playlist
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766146966068: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766146966336: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [PLAYLISTS] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PLAYLISTS] Console errors (7):
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 429 (Too Many Requests)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PLAYLISTS] Network errors (9):
|
|||
|
|
|
|||
|
|
[1A[2K - POST http://127.0.0.1:8080/api/v1/auth/login: 429
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766146966068: 0
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766146966336: 0
|
|||
|
|
|
|||
|
|
[1A[2K 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
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K[13/38] [chromium] › e2e/playlists.spec.ts:94:3 › Playlists CRUD › should display list of playlists
|
|||
|
|
[1A[2K[chromium] › e2e/playlists.spec.ts:94:3 › Playlists CRUD › should display list of playlists
|
|||
|
|
🔐 [LOGIN] Authenticating as user@example.com...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting 100ms before login (1766146983143ms since last login)...
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for networkidle after navigation...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for auth state to be persisted...
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [LOGIN] Verifying authentication state...
|
|||
|
|
|
|||
|
|
[1A[2K ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
|
|||
|
|
|
|||
|
|
[1A[2K✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
|
|||
|
|
|
|||
|
|
[1A[2K🧪 [PLAYLISTS] Running: Display playlists list
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766146985881: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766146986120: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [PLAYLISTS] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PLAYLISTS] Console errors (6):
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PLAYLISTS] Network errors (8):
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766146985881: 0
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766146986120: 0
|
|||
|
|
|
|||
|
|
[1A[2K 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
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K[14/38] [chromium] › e2e/playlists.spec.ts:124:3 › Playlists CRUD › should update playlist name and description
|
|||
|
|
[1A[2K[chromium] › e2e/playlists.spec.ts:124:3 › Playlists CRUD › should update playlist name and description
|
|||
|
|
🔐 [LOGIN] Authenticating as user@example.com...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting 100ms before login (1766147002862ms since last login)...
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for networkidle after navigation...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for auth state to be persisted...
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [LOGIN] Verifying authentication state...
|
|||
|
|
|
|||
|
|
[1A[2K ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
|
|||
|
|
|
|||
|
|
[1A[2K✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
|
|||
|
|
|
|||
|
|
[1A[2K🧪 [PLAYLISTS] Running: Update playlist
|
|||
|
|
|
|||
|
|
[1A[2K🧭 [NAVIGATION] Navigating via href: /playlists...
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147005827: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K✅ [NAVIGATION] Successfully navigated directly to /playlists
|
|||
|
|
|
|||
|
|
[1A[2K📦 [MODAL] Opening modal via button: /create|créer|nouvelle/i
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [PLAYLISTS] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PLAYLISTS] Console errors (6):
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PLAYLISTS] Network errors (7):
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766147005827: 0
|
|||
|
|
|
|||
|
|
[1A[2K 3) [chromium] › e2e/playlists.spec.ts:124:3 › Playlists CRUD › should update playlist name and description
|
|||
|
|
|
|||
|
|
Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed
|
|||
|
|
|
|||
|
|
Locator: locator('button').filter({ hasText: /create|créer|nouvelle/i }).first()
|
|||
|
|
Expected: visible
|
|||
|
|
Timeout: 10000ms
|
|||
|
|
Error: element(s) not found
|
|||
|
|
|
|||
|
|
Call log:
|
|||
|
|
[2m - Expect "toBeVisible" with timeout 10000ms[22m
|
|||
|
|
[2m - waiting for locator('button').filter({ hasText: /create|créer|nouvelle/i }).first()[22m
|
|||
|
|
|
|||
|
|
|
|||
|
|
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
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K[15/38] [chromium] › e2e/playlists.spec.ts:187:3 › Playlists CRUD › should add track to playlist
|
|||
|
|
[1A[2K[chromium] › e2e/playlists.spec.ts:187:3 › Playlists CRUD › should add track to playlist
|
|||
|
|
🔐 [LOGIN] Authenticating as user@example.com...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting 100ms before login (1766147027421ms since last login)...
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for networkidle after navigation...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for auth state to be persisted...
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [LOGIN] Verifying authentication state...
|
|||
|
|
|
|||
|
|
[1A[2K ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
|
|||
|
|
|
|||
|
|
[1A[2K✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
|
|||
|
|
|
|||
|
|
[1A[2K🧪 [PLAYLISTS] Running: Add track to playlist
|
|||
|
|
|
|||
|
|
[1A[2K🧭 [NAVIGATION] Navigating via href: /playlists...
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147030175: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147030459: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K✅ [NAVIGATION] Successfully navigated directly to /playlists
|
|||
|
|
|
|||
|
|
[1A[2K📦 [MODAL] Opening modal via button: /create|créer|nouvelle/i
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [PLAYLISTS] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PLAYLISTS] Console errors (6):
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PLAYLISTS] Network errors (8):
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766147030175: 0
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766147030459: 0
|
|||
|
|
|
|||
|
|
[1A[2K 4) [chromium] › e2e/playlists.spec.ts:187:3 › Playlists CRUD › should add track to playlist ──────
|
|||
|
|
|
|||
|
|
Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed
|
|||
|
|
|
|||
|
|
Locator: locator('button').filter({ hasText: /create|créer|nouvelle/i }).first()
|
|||
|
|
Expected: visible
|
|||
|
|
Timeout: 10000ms
|
|||
|
|
Error: element(s) not found
|
|||
|
|
|
|||
|
|
Call log:
|
|||
|
|
[2m - Expect "toBeVisible" with timeout 10000ms[22m
|
|||
|
|
[2m - waiting for locator('button').filter({ hasText: /create|créer|nouvelle/i }).first()[22m
|
|||
|
|
|
|||
|
|
|
|||
|
|
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
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K[16/38] [chromium] › e2e/playlists.spec.ts:247:3 › Playlists CRUD › should delete playlist successfully
|
|||
|
|
[1A[2K[chromium] › e2e/playlists.spec.ts:247:3 › Playlists CRUD › should delete playlist successfully
|
|||
|
|
🔐 [LOGIN] Authenticating as user@example.com...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting 100ms before login (1766147052060ms since last login)...
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for networkidle after navigation...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for auth state to be persisted...
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [LOGIN] Verifying authentication state...
|
|||
|
|
|
|||
|
|
[1A[2K ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
|
|||
|
|
|
|||
|
|
[1A[2K✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
|
|||
|
|
|
|||
|
|
[1A[2K🧪 [PLAYLISTS] Running: Delete playlist
|
|||
|
|
|
|||
|
|
[1A[2K🧭 [NAVIGATION] Navigating via href: /playlists...
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147054821: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147055083: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K✅ [NAVIGATION] Successfully navigated directly to /playlists
|
|||
|
|
|
|||
|
|
[1A[2K📦 [MODAL] Opening modal via button: /create|créer|nouvelle/i
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [PLAYLISTS] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PLAYLISTS] Console errors (6):
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PLAYLISTS] Network errors (8):
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766147054821: 0
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766147055083: 0
|
|||
|
|
|
|||
|
|
[1A[2K 5) [chromium] › e2e/playlists.spec.ts:247:3 › Playlists CRUD › should delete playlist successfully
|
|||
|
|
|
|||
|
|
Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed
|
|||
|
|
|
|||
|
|
Locator: locator('button').filter({ hasText: /create|créer|nouvelle/i }).first()
|
|||
|
|
Expected: visible
|
|||
|
|
Timeout: 10000ms
|
|||
|
|
Error: element(s) not found
|
|||
|
|
|
|||
|
|
Call log:
|
|||
|
|
[2m - Expect "toBeVisible" with timeout 10000ms[22m
|
|||
|
|
[2m - waiting for locator('button').filter({ hasText: /create|créer|nouvelle/i }).first()[22m
|
|||
|
|
|
|||
|
|
|
|||
|
|
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
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K[17/38] [chromium] › e2e/playlists.spec.ts:309:3 › Playlists CRUD › should display empty state for new playlist
|
|||
|
|
[1A[2K[chromium] › e2e/playlists.spec.ts:309:3 › Playlists CRUD › should display empty state for new playlist
|
|||
|
|
🔐 [LOGIN] Authenticating as user@example.com...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting 100ms before login (1766147076705ms since last login)...
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for networkidle after navigation...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for auth state to be persisted...
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [LOGIN] Verifying authentication state...
|
|||
|
|
|
|||
|
|
[1A[2K ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
|
|||
|
|
|
|||
|
|
[1A[2K✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
|
|||
|
|
|
|||
|
|
[1A[2K🧪 [PLAYLISTS] Running: Empty playlist state
|
|||
|
|
|
|||
|
|
[1A[2K🧭 [NAVIGATION] Navigating via href: /playlists...
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147079427: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147079678: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K✅ [NAVIGATION] Successfully navigated directly to /playlists
|
|||
|
|
|
|||
|
|
[1A[2K📦 [MODAL] Opening modal via button: /create|créer|nouvelle/i
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [PLAYLISTS] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PLAYLISTS] Console errors (6):
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PLAYLISTS] Network errors (8):
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766147079427: 0
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766147079678: 0
|
|||
|
|
|
|||
|
|
[1A[2K 6) [chromium] › e2e/playlists.spec.ts:309:3 › Playlists CRUD › should display empty state for new playlist
|
|||
|
|
|
|||
|
|
Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed
|
|||
|
|
|
|||
|
|
Locator: locator('button').filter({ hasText: /create|créer|nouvelle/i }).first()
|
|||
|
|
Expected: visible
|
|||
|
|
Timeout: 10000ms
|
|||
|
|
Error: element(s) not found
|
|||
|
|
|
|||
|
|
Call log:
|
|||
|
|
[2m - Expect "toBeVisible" with timeout 10000ms[22m
|
|||
|
|
[2m - waiting for locator('button').filter({ hasText: /create|créer|nouvelle/i }).first()[22m
|
|||
|
|
|
|||
|
|
|
|||
|
|
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
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K[18/38] [chromium] › e2e/playlists.spec.ts:347:3 › Playlists CRUD › should search playlists by name
|
|||
|
|
[1A[2K[chromium] › e2e/playlists.spec.ts:347:3 › Playlists CRUD › should search playlists by name
|
|||
|
|
🔐 [LOGIN] Authenticating as user@example.com...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting 100ms before login (1766147101338ms since last login)...
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for networkidle after navigation...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for auth state to be persisted...
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [LOGIN] Verifying authentication state...
|
|||
|
|
|
|||
|
|
[1A[2K ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
|
|||
|
|
|
|||
|
|
[1A[2K✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
|
|||
|
|
|
|||
|
|
[1A[2K🧪 [PLAYLISTS] Running: Search playlists
|
|||
|
|
|
|||
|
|
[1A[2K🧭 [NAVIGATION] Navigating via href: /playlists...
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147104076: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147104374: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K✅ [NAVIGATION] Successfully navigated directly to /playlists
|
|||
|
|
|
|||
|
|
[1A[2K📦 [MODAL] Opening modal via button: /create|créer|nouvelle/i
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [PLAYLISTS] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PLAYLISTS] Console errors (6):
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PLAYLISTS] Network errors (8):
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766147104076: 0
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766147104374: 0
|
|||
|
|
|
|||
|
|
[1A[2K 7) [chromium] › e2e/playlists.spec.ts:347:3 › Playlists CRUD › should search playlists by name ───
|
|||
|
|
|
|||
|
|
Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed
|
|||
|
|
|
|||
|
|
Locator: locator('button').filter({ hasText: /create|créer|nouvelle/i }).first()
|
|||
|
|
Expected: visible
|
|||
|
|
Timeout: 10000ms
|
|||
|
|
Error: element(s) not found
|
|||
|
|
|
|||
|
|
Call log:
|
|||
|
|
[2m - Expect "toBeVisible" with timeout 10000ms[22m
|
|||
|
|
[2m - waiting for locator('button').filter({ hasText: /create|créer|nouvelle/i }).first()[22m
|
|||
|
|
|
|||
|
|
|
|||
|
|
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
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K[19/38] [chromium] › e2e/profile.spec.ts:40:3 › User Profile Management › should display user profile information
|
|||
|
|
[1A[2K[chromium] › e2e/profile.spec.ts:40:3 › User Profile Management › should display user profile information
|
|||
|
|
🔐 [LOGIN] Authenticating as user@example.com...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting 100ms before login (1766147126007ms since last login)...
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for networkidle after navigation...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for auth state to be persisted...
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [LOGIN] Verifying authentication state...
|
|||
|
|
|
|||
|
|
[1A[2K ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
|
|||
|
|
|
|||
|
|
[1A[2K✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
|
|||
|
|
|
|||
|
|
[1A[2K🧪 [PROFILE] Running: Display profile
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K✅ [PROFILE] Profile page displayed successfully
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [PROFILE] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K✅ [PROFILE] No console errors
|
|||
|
|
|
|||
|
|
[1A[2K✅ [PROFILE] No network errors
|
|||
|
|
|
|||
|
|
[1A[2K[20/38] [chromium] › e2e/profile.spec.ts:106:3 › User Profile Management › should update username successfully
|
|||
|
|
[1A[2K[chromium] › e2e/profile.spec.ts:106:3 › User Profile Management › should update username successfully
|
|||
|
|
🔐 [LOGIN] Authenticating as user@example.com...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting 96ms before login to avoid rate limiting...
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for networkidle after navigation...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for auth state to be persisted...
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [LOGIN] Verifying authentication state...
|
|||
|
|
|
|||
|
|
[1A[2K ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
|
|||
|
|
|
|||
|
|
[1A[2K✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
|
|||
|
|
|
|||
|
|
[1A[2K🧪 [PROFILE] Running: Update username
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147131651: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/features/auth/components/LoginForm.tsx?t=1766146873279: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147132058: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [PROFILE] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PROFILE] Console errors (6):
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PROFILE] Network errors (9):
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766147131651: 0
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/features/auth/components/LoginForm.tsx?t=1766146873279: 0
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766147132058: 0
|
|||
|
|
|
|||
|
|
[1A[2K 8) [chromium] › e2e/profile.spec.ts:106:3 › User Profile Management › should update username successfully
|
|||
|
|
|
|||
|
|
Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed
|
|||
|
|
|
|||
|
|
Locator: locator('input#username, input[name="username"]').first()
|
|||
|
|
Expected: visible
|
|||
|
|
Timeout: 15000ms
|
|||
|
|
Error: element(s) not found
|
|||
|
|
|
|||
|
|
Call log:
|
|||
|
|
[2m - Expect "toBeVisible" with timeout 15000ms[22m
|
|||
|
|
[2m - waiting for locator('input#username, input[name="username"]').first()[22m
|
|||
|
|
|
|||
|
|
|
|||
|
|
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
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K[21/38] [chromium] › e2e/profile.spec.ts:178:3 › User Profile Management › should update bio successfully
|
|||
|
|
[1A[2K[chromium] › e2e/profile.spec.ts:178:3 › User Profile Management › should update bio successfully
|
|||
|
|
🔐 [LOGIN] Authenticating as user@example.com...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting 100ms before login (1766147148376ms since last login)...
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for networkidle after navigation...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for auth state to be persisted...
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [LOGIN] Verifying authentication state...
|
|||
|
|
|
|||
|
|
[1A[2K ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
|
|||
|
|
|
|||
|
|
[1A[2K✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
|
|||
|
|
|
|||
|
|
[1A[2K🧪 [PROFILE] Running: Update bio
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147151050: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2Kℹ️ [PROFILE] Bio field not found, skipping test
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [PROFILE] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PROFILE] Console errors (2):
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PROFILE] Network errors (3):
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766147151050: 0
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147151332: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K[22/38] [chromium] › e2e/profile.spec.ts:231:3 › User Profile Management › should change password successfully
|
|||
|
|
[1A[2K[chromium] › e2e/profile.spec.ts:231:3 › User Profile Management › should change password successfully
|
|||
|
|
🔐 [LOGIN] Authenticating as user@example.com...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting 100ms before login (3006ms since last login)...
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for networkidle after navigation...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for auth state to be persisted...
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [LOGIN] Verifying authentication state...
|
|||
|
|
|
|||
|
|
[1A[2K ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
|
|||
|
|
|
|||
|
|
[1A[2K✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
|
|||
|
|
|
|||
|
|
[1A[2K🧪 [PROFILE] Running: Change password
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147154110: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2Kℹ️ [PROFILE] Change password section not found, skipping test
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [PROFILE] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PROFILE] Console errors (2):
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PROFILE] Network errors (3):
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766147154110: 0
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/login: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K[23/38] [chromium] › e2e/profile.spec.ts:298:3 › User Profile Management › should upload profile avatar
|
|||
|
|
[1A[2K[chromium] › e2e/profile.spec.ts:298:3 › User Profile Management › should upload profile avatar
|
|||
|
|
🔐 [LOGIN] Authenticating as user@example.com...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting 124ms before login to avoid rate limiting...
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/login: 429
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 429 (Too Many Requests)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/login: 429
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 429 (Too Many Requests)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [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}
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [PROFILE] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PROFILE] Console errors (3):
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 429 (Too Many Requests)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 429 (Too Many Requests)
|
|||
|
|
|
|||
|
|
[1A[2K - 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}
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PROFILE] Network errors (2):
|
|||
|
|
|
|||
|
|
[1A[2K - POST http://127.0.0.1:8080/api/v1/auth/login: 429
|
|||
|
|
|
|||
|
|
[1A[2K - POST http://127.0.0.1:8080/api/v1/auth/login: 429
|
|||
|
|
|
|||
|
|
[1A[2K 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
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K[24/38] [chromium] › e2e/profile.spec.ts:357:3 › User Profile Management › should validate username length
|
|||
|
|
[1A[2K[chromium] › e2e/profile.spec.ts:357:3 › User Profile Management › should validate username length
|
|||
|
|
🔐 [LOGIN] Authenticating as user@example.com...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting 100ms before login (1766147177045ms since last login)...
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for networkidle after navigation...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for auth state to be persisted...
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [LOGIN] Verifying authentication state...
|
|||
|
|
|
|||
|
|
[1A[2K ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
|
|||
|
|
|
|||
|
|
[1A[2K✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
|
|||
|
|
|
|||
|
|
[1A[2K🧪 [PROFILE] Running: Username validation
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147179757: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147180049: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [PROFILE] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PROFILE] Console errors (6):
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PROFILE] Network errors (8):
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766147179757: 0
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766147180049: 0
|
|||
|
|
|
|||
|
|
[1A[2K 10) [chromium] › e2e/profile.spec.ts:357:3 › User Profile Management › should validate username length
|
|||
|
|
|
|||
|
|
Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed
|
|||
|
|
|
|||
|
|
Locator: locator('input#username, input[name="username"]').first()
|
|||
|
|
Expected: visible
|
|||
|
|
Timeout: 15000ms
|
|||
|
|
Error: element(s) not found
|
|||
|
|
|
|||
|
|
Call log:
|
|||
|
|
[2m - Expect "toBeVisible" with timeout 15000ms[22m
|
|||
|
|
[2m - waiting for locator('input#username, input[name="username"]').first()[22m
|
|||
|
|
|
|||
|
|
|
|||
|
|
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
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K[25/38] [chromium] › e2e/profile.spec.ts:404:3 › User Profile Management › should display account information
|
|||
|
|
[1A[2K[chromium] › e2e/profile.spec.ts:404:3 › User Profile Management › should display account information
|
|||
|
|
🔐 [LOGIN] Authenticating as user@example.com...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting 100ms before login (1766147196334ms since last login)...
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for networkidle after navigation...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for auth state to be persisted...
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [LOGIN] Verifying authentication state...
|
|||
|
|
|
|||
|
|
[1A[2K ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
|
|||
|
|
|
|||
|
|
[1A[2K✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
|
|||
|
|
|
|||
|
|
[1A[2K🧪 [PROFILE] Running: Display account info
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147199024: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2Kℹ️ [PROFILE] Additional account info not displayed
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [PROFILE] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PROFILE] Console errors (2):
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PROFILE] Network errors (3):
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766147199024: 0
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/login: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K[26/38] [chromium] › e2e/profile.spec.ts:434:3 › User Profile Management › should navigate to advanced settings
|
|||
|
|
[1A[2K[chromium] › e2e/profile.spec.ts:434:3 › User Profile Management › should navigate to advanced settings
|
|||
|
|
🔐 [LOGIN] Authenticating as user@example.com...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting 61ms before login to avoid rate limiting...
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for networkidle after navigation...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for auth state to be persisted...
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [LOGIN] Verifying authentication state...
|
|||
|
|
|
|||
|
|
[1A[2K ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
|
|||
|
|
|
|||
|
|
[1A[2K✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
|
|||
|
|
|
|||
|
|
[1A[2K🧪 [PROFILE] Running: Navigate to settings
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147201932: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2Kℹ️ [PROFILE] Advanced settings link not found
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [PROFILE] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PROFILE] Console errors (2):
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [PROFILE] Network errors (3):
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766147201932: 0
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/login: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K[27/38] [chromium] › e2e/qa-audit.spec.ts:75:3 › QA E2E Audit - Veza Frontend › 1. Health Check - Backend API
|
|||
|
|
[1A[2K[28/38] [chromium] › e2e/qa-audit.spec.ts:85:3 › QA E2E Audit - Veza Frontend › 2.1. Register - Test complet
|
|||
|
|
[1A[2K[29/38] [chromium] › e2e/qa-audit.spec.ts:134:3 › QA E2E Audit - Veza Frontend › 2.2. Register - Validation errors
|
|||
|
|
[1A[2K[30/38] [chromium] › e2e/qa-audit.spec.ts:163:3 › QA E2E Audit - Veza Frontend › 2.3. Login - Test complet
|
|||
|
|
[1A[2K[31/38] [chromium] › e2e/qa-audit.spec.ts:226:3 › QA E2E Audit - Veza Frontend › 3. Navigation - Toutes les pages
|
|||
|
|
[1A[2K[32/38] [chromium] › e2e/qa-audit.spec.ts:264:3 › QA E2E Audit - Veza Frontend › 4. Buttons and Actions - Dashboard
|
|||
|
|
[1A[2K[33/38] [chromium] › e2e/qa-audit.spec.ts:287:3 › QA E2E Audit - Veza Frontend › 5. Logout
|
|||
|
|
[1A[2K[chromium] › e2e/qa-audit.spec.ts:287:3 › QA E2E Audit - Veza Frontend › 5. Logout
|
|||
|
|
|
|||
|
|
=== QA AUDIT RESULTS ===
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K✅ Backend API Health: pass
|
|||
|
|
|
|||
|
|
[1A[2K❌ Register - Valid data: fail
|
|||
|
|
|
|||
|
|
[1A[2K 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"}}
|
|||
|
|
|
|||
|
|
[1A[2K✅ Register - Email validation: pass
|
|||
|
|
|
|||
|
|
[1A[2K✅ Register - Password validation: pass
|
|||
|
|
|
|||
|
|
[1A[2K❌ Login - Wrong password: fail
|
|||
|
|
|
|||
|
|
[1A[2K Error: Expected 401, got 403
|
|||
|
|
|
|||
|
|
[1A[2K❌ Login - Valid credentials: fail
|
|||
|
|
|
|||
|
|
[1A[2K Error: Status 403: {"success":false,"error":{"code":1004,"message":"Invalid credentials","request_id":"62f609bf-efeb-4ce4-ae4c-eecc45e62d95","timestamp":"2025-12-19T12:26:45Z"}}
|
|||
|
|
|
|||
|
|
[1A[2K❌ Navigation - Dashboard: fail
|
|||
|
|
|
|||
|
|
[1A[2K Error: Console errors: 3, Network errors: 2
|
|||
|
|
|
|||
|
|
[1A[2K❌ Navigation - Chat: fail
|
|||
|
|
|
|||
|
|
[1A[2K❌ Navigation - Library: fail
|
|||
|
|
|
|||
|
|
[1A[2K❌ Navigation - Profile: fail
|
|||
|
|
|
|||
|
|
[1A[2K❌ Navigation - Settings: fail
|
|||
|
|
|
|||
|
|
[1A[2K❌ Navigation - Marketplace: fail
|
|||
|
|
|
|||
|
|
[1A[2K✅ Dashboard - Buttons: pass
|
|||
|
|
|
|||
|
|
[1A[2K[34/38] [chromium] › e2e/track_lifecycle.spec.ts:37:5 › Track Lifecycle - CRUD › Complete Track Lifecycle: Upload -> Verify -> Delete
|
|||
|
|
[1A[2K[chromium] › e2e/track_lifecycle.spec.ts:37:5 › Track Lifecycle - CRUD › Complete Track Lifecycle: Upload -> Verify -> Delete
|
|||
|
|
🔍 [LIFECYCLE] Step 1: Login
|
|||
|
|
|
|||
|
|
[1A[2K🔐 [LOGIN] Authenticating as user@example.com...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting 100ms before login (22649ms since last login)...
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/login: 429
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 429 (Too Many Requests)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/login: 429
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 429 (Too Many Requests)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [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}
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [LIFECYCLE] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [LIFECYCLE] Console errors (3):
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 429 (Too Many Requests)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 429 (Too Many Requests)
|
|||
|
|
|
|||
|
|
[1A[2K - 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}
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [LIFECYCLE] Network errors (2):
|
|||
|
|
|
|||
|
|
[1A[2K - POST http://127.0.0.1:8080/api/v1/auth/login: 429
|
|||
|
|
|
|||
|
|
[1A[2K - POST http://127.0.0.1:8080/api/v1/auth/login: 429
|
|||
|
|
|
|||
|
|
[1A[2K 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
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K[35/38] [chromium] › e2e/tracks_upload_chunked.spec.ts:47:3 › Chunked Upload Flow › should upload large file (15 MB) using chunked upload
|
|||
|
|
[1A[2K[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
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [CHUNKED UPLOAD] Step 1: Login
|
|||
|
|
|
|||
|
|
[1A[2K🔐 [LOGIN] Authenticating as user@example.com...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting 100ms before login (1766147244650ms since last login)...
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for networkidle after navigation...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for auth state to be persisted...
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [LOGIN] Verifying authentication state...
|
|||
|
|
|
|||
|
|
[1A[2K ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
|
|||
|
|
|
|||
|
|
[1A[2K✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [CHUNKED UPLOAD] Step 2: Navigate to /library
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147248337: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147248607: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [CHUNKED UPLOAD] Step 3: Open upload modal
|
|||
|
|
|
|||
|
|
[1A[2K📦 [MODAL] Opening modal via button: /upload/i
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [CHUNKED UPLOAD] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CHUNKED UPLOAD] Console errors (6):
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CHUNKED UPLOAD] Network errors (8):
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766147248337: 0
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766147248607: 0
|
|||
|
|
|
|||
|
|
[1A[2K 12) [chromium] › e2e/tracks_upload_chunked.spec.ts:47:3 › Chunked Upload Flow › should upload large file (15 MB) using chunked upload
|
|||
|
|
|
|||
|
|
Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed
|
|||
|
|
|
|||
|
|
Locator: locator('button').filter({ hasText: /upload/i }).first()
|
|||
|
|
Expected: visible
|
|||
|
|
Timeout: 10000ms
|
|||
|
|
Error: element(s) not found
|
|||
|
|
|
|||
|
|
Call log:
|
|||
|
|
[2m - Expect "toBeVisible" with timeout 10000ms[22m
|
|||
|
|
[2m - waiting for locator('button').filter({ hasText: /upload/i }).first()[22m
|
|||
|
|
|
|||
|
|
|
|||
|
|
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
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K[36/38] [chromium] › e2e/tracks_upload_chunked.spec.ts:281:3 › Chunked Upload Flow › should handle very large file (25 MB) with chunking
|
|||
|
|
[1A[2K[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)
|
|||
|
|
|
|||
|
|
[1A[2K🔐 [LOGIN] Authenticating as user@example.com...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting 100ms before login (1766147260572ms since last login)...
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for networkidle after navigation...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for auth state to be persisted...
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [LOGIN] Verifying authentication state...
|
|||
|
|
|
|||
|
|
[1A[2K ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
|
|||
|
|
|
|||
|
|
[1A[2K✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147264432: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K📦 [MODAL] Opening modal via button: /upload/i
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [CHUNKED UPLOAD] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CHUNKED UPLOAD] Console errors (6):
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CHUNKED UPLOAD] Network errors (7):
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766147264432: 0
|
|||
|
|
|
|||
|
|
[1A[2K 13) [chromium] › e2e/tracks_upload_chunked.spec.ts:281:3 › Chunked Upload Flow › should handle very large file (25 MB) with chunking
|
|||
|
|
|
|||
|
|
Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed
|
|||
|
|
|
|||
|
|
Locator: locator('button').filter({ hasText: /upload/i }).first()
|
|||
|
|
Expected: visible
|
|||
|
|
Timeout: 10000ms
|
|||
|
|
Error: element(s) not found
|
|||
|
|
|
|||
|
|
Call log:
|
|||
|
|
[2m - Expect "toBeVisible" with timeout 10000ms[22m
|
|||
|
|
[2m - waiting for locator('button').filter({ hasText: /upload/i }).first()[22m
|
|||
|
|
|
|||
|
|
|
|||
|
|
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
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K[37/38] [chromium] › e2e/tracks_upload_chunked.spec.ts:364:3 › Chunked Upload Flow › should use direct upload for small files (< 10 MB)
|
|||
|
|
[1A[2K[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
|
|||
|
|
|
|||
|
|
[1A[2K🔐 [LOGIN] Authenticating as user@example.com...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting 100ms before login (1766147276319ms since last login)...
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for networkidle after navigation...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for auth state to be persisted...
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [LOGIN] Verifying authentication state...
|
|||
|
|
|
|||
|
|
[1A[2K ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
|
|||
|
|
|
|||
|
|
[1A[2K✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147280197: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K📦 [MODAL] Opening modal via button: /upload/i
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [CHUNKED UPLOAD] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CHUNKED UPLOAD] Console errors (6):
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CHUNKED UPLOAD] Network errors (7):
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/auth/me: 401
|
|||
|
|
|
|||
|
|
[1A[2K - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766147280197: 0
|
|||
|
|
|
|||
|
|
[1A[2K 14) [chromium] › e2e/tracks_upload_chunked.spec.ts:364:3 › Chunked Upload Flow › should use direct upload for small files (< 10 MB)
|
|||
|
|
|
|||
|
|
Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed
|
|||
|
|
|
|||
|
|
Locator: locator('button').filter({ hasText: /upload/i }).first()
|
|||
|
|
Expected: visible
|
|||
|
|
Timeout: 10000ms
|
|||
|
|
Error: element(s) not found
|
|||
|
|
|
|||
|
|
Call log:
|
|||
|
|
[2m - Expect "toBeVisible" with timeout 10000ms[22m
|
|||
|
|
[2m - waiting for locator('button').filter({ hasText: /upload/i }).first()[22m
|
|||
|
|
|
|||
|
|
|
|||
|
|
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
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K[38/38] [chromium] › e2e/upload_flow.spec.ts:36:3 › Upload Flow - Happy Path › Complete Upload Flow
|
|||
|
|
[1A[2K[chromium] › e2e/upload_flow.spec.ts:36:3 › Upload Flow - Happy Path › Complete Upload Flow
|
|||
|
|
🔍 [UPLOAD TEST] Step 1: Logging in...
|
|||
|
|
|
|||
|
|
[1A[2K🔐 [LOGIN] Authenticating as user@example.com...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting 100ms before login (1766147292059ms since last login)...
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for networkidle after navigation...
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [LOGIN] Waiting for auth state to be persisted...
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [LOGIN] Verifying authentication state...
|
|||
|
|
|
|||
|
|
[1A[2K ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)
|
|||
|
|
|
|||
|
|
[1A[2K✅ [LOGIN] Successfully authenticated as user@example.com (token: eyJhbGciOiJIUzI1NiIs...)
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [UPLOAD TEST] Step 2: Navigating to /library...
|
|||
|
|
|
|||
|
|
[1A[2K🧭 [NAVIGATION] Navigating via href: /library...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [NAVIGATION] Successfully navigated via href: /library
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [UPLOAD TEST] Step 3: Opening upload modal...
|
|||
|
|
|
|||
|
|
[1A[2K📦 [MODAL] Opening modal via button: /upload/i
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/playlists?page=20&limit=0: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] GET http://127.0.0.1:8080/api/v1/playlists?page=20&limit=0: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K✅ [MODAL] Modal opened successfully
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [UPLOAD TEST] Step 4: Selecting and uploading file...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [UPLOAD TEST] File selected with mimeType audio/mpeg
|
|||
|
|
|
|||
|
|
[1A[2K✅ [UPLOAD TEST] File displayed in modal
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [UPLOAD TEST] Step 5: Filling metadata...
|
|||
|
|
|
|||
|
|
[1A[2K✏️ [FILL] Filling field input[id="title"] with value: Test Song
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FILL] Field input[id="title"] filled successfully
|
|||
|
|
|
|||
|
|
[1A[2K✏️ [FILL] Filling field input[id="artist"] with value: QA Bot
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FILL] Field input[id="artist"] filled successfully
|
|||
|
|
|
|||
|
|
[1A[2K✅ [UPLOAD TEST] Metadata filled
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [UPLOAD TEST] Step 6: Starting upload...
|
|||
|
|
|
|||
|
|
[1A[2K⚡ [FORM SUBMIT] Forcing submission of form: form#upload-track-form
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [FORM SUBMIT] Waiting for form selector: form#upload-track-form
|
|||
|
|
|
|||
|
|
[1A[2K⏳ [FORM SUBMIT] Waiting for React to update state...
|
|||
|
|
|
|||
|
|
[1A[2K🚀 [FORM SUBMIT] Submitting form...
|
|||
|
|
|
|||
|
|
[1A[2K✅ [FORM SUBMIT] Form form#upload-track-form submitted successfully
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/tracks: 401
|
|||
|
|
|
|||
|
|
[1A[2K📡 [UPLOAD TEST] Upload response status: 401
|
|||
|
|
|
|||
|
|
[1A[2K🔔 [TOAST] Waiting for success message...
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/index.css?t=1766147296671: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K🔍 [UPLOAD TEST] Step 7: Verifying track appears in list...
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/src/main.tsx?t=1766147296671: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/@react-refresh: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [REQUEST FAILED] GET http://localhost:3000/@vite/client: net::ERR_ABORTED
|
|||
|
|
|
|||
|
|
[1A[2K
|
|||
|
|
📊 [UPLOAD TEST] === Final Verifications ===
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [UPLOAD TEST] Console errors (4):
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 401 (Unauthorized)
|
|||
|
|
|
|||
|
|
[1A[2K - Failed to load resource: the server responded with a status of 403 (Forbidden)
|
|||
|
|
|
|||
|
|
[1A[2K🔴 [UPLOAD TEST] Network errors (8):
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/playlists?page=20&limit=0: 401
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://127.0.0.1:8080/api/v1/playlists?page=20&limit=0: 401
|
|||
|
|
|
|||
|
|
[1A[2K - POST http://127.0.0.1:8080/api/v1/tracks: 401
|
|||
|
|
|
|||
|
|
[1A[2K - POST http://127.0.0.1:8080/api/v1/auth/refresh: 403
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/index.css?t=1766147296671: 0
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/src/main.tsx?t=1766147296671: 0
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/@react-refresh: 0
|
|||
|
|
|
|||
|
|
[1A[2K - GET http://localhost:3000/@vite/client: 0
|
|||
|
|
|
|||
|
|
[1A[2K 15) [chromium] › e2e/upload_flow.spec.ts:36:3 › Upload Flow - Happy Path › Complete Upload Flow ──
|
|||
|
|
|
|||
|
|
Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed
|
|||
|
|
|
|||
|
|
Locator: locator('table, [role="table"], .track-list').first()
|
|||
|
|
Expected: visible
|
|||
|
|
Timeout: 10000ms
|
|||
|
|
Error: element(s) not found
|
|||
|
|
|
|||
|
|
Call log:
|
|||
|
|
[2m - Expect "toBeVisible" with timeout 10000ms[22m
|
|||
|
|
[2m - waiting for locator('table, [role="table"], .track-list').first()[22m
|
|||
|
|
|
|||
|
|
|
|||
|
|
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
|
|||
|
|
|
|||
|
|
|
|||
|
|
[1A[2K 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)
|
|||
|
|
|
|||
|
|
[36m Serving HTML report at http://localhost:9323. Press Ctrl+C to quit.[39m
|