veza/apps/web/e2e-results.json
senke cc2ebae4dc feat: Visual masterpiece - true light mode & premium UI
🎨 **True Light/Dark Mode**
- Implemented proper light mode with inverted color scheme
- Smooth theme transitions (0.3s ease)
- Light mode colors: white backgrounds, dark text, vibrant accents
- System theme detection with proper class application

🌈 **Enhanced Theme System**
- 4 color themes work in both light and dark modes
- Cyber (cyan/magenta), Ocean (blue/teal), Forest (green/lime), Sunset (orange/purple)
- Theme-specific glassmorphism effects
- Proper contrast in light mode

 **Premium Animations**
- Float, glow-pulse, slide-in, scale-in, rotate-in animations
- Smooth page transitions
- Hover effects with depth (lift, glow, scale)
- Micro-interactions on all interactive elements

🎯 **Visual Polish**
- Enhanced glassmorphism for light/dark modes
- Custom scrollbar with theme colors
- Beautiful text selection
- Focus indicators for accessibility
- Premium utility classes

🔧 **Technical Improvements**
- Updated UIStore to properly apply light/dark classes
- Added data-theme attribute for CSS targeting
- Smooth scroll behavior
- Optimized transitions

The app is now a visual masterpiece with perfect light/dark mode support!
2026-01-11 02:32:21 +01:00

3088 lines
No EOL
205 KiB
JSON

{
"config": {
"configFile": "/home/senke/git/talas/veza/apps/web/playwright.config.ts",
"rootDir": "/home/senke/git/talas/veza/apps/web/e2e",
"forbidOnly": false,
"fullyParallel": true,
"globalSetup": "/home/senke/git/talas/veza/apps/web/e2e/global-setup.ts",
"globalTeardown": null,
"globalTimeout": 0,
"grep": {},
"grepInvert": null,
"maxFailures": 0,
"metadata": {
"actualWorkers": 1
},
"preserveOutput": "always",
"reporter": [
[
"html",
null
],
[
"json",
{
"outputFile": "e2e-results.json"
}
]
],
"reportSlowTests": {
"max": 5,
"threshold": 300000
},
"quiet": false,
"projects": [
{
"outputDir": "/home/senke/git/talas/veza/apps/web/test-results",
"repeatEach": 1,
"retries": 0,
"metadata": {
"actualWorkers": 1
},
"id": "chromium",
"name": "chromium",
"testDir": "/home/senke/git/talas/veza/apps/web/e2e",
"testIgnore": [],
"testMatch": [
"**/*.@(spec|test).?(c|m)[jt]s?(x)"
],
"timeout": 60000
},
{
"outputDir": "/home/senke/git/talas/veza/apps/web/test-results",
"repeatEach": 1,
"retries": 0,
"metadata": {
"actualWorkers": 1
},
"id": "firefox",
"name": "firefox",
"testDir": "/home/senke/git/talas/veza/apps/web/e2e",
"testIgnore": [],
"testMatch": [
"**/*.@(spec|test).?(c|m)[jt]s?(x)"
],
"timeout": 60000
},
{
"outputDir": "/home/senke/git/talas/veza/apps/web/test-results",
"repeatEach": 1,
"retries": 0,
"metadata": {
"actualWorkers": 1
},
"id": "webkit",
"name": "webkit",
"testDir": "/home/senke/git/talas/veza/apps/web/e2e",
"testIgnore": [],
"testMatch": [
"**/*.@(spec|test).?(c|m)[jt]s?(x)"
],
"timeout": 60000
},
{
"outputDir": "/home/senke/git/talas/veza/apps/web/test-results",
"repeatEach": 1,
"retries": 0,
"metadata": {
"actualWorkers": 1
},
"id": "msedge",
"name": "msedge",
"testDir": "/home/senke/git/talas/veza/apps/web/e2e",
"testIgnore": [],
"testMatch": [
"**/*.@(spec|test).?(c|m)[jt]s?(x)"
],
"timeout": 60000
}
],
"shard": null,
"tags": [],
"updateSnapshots": "missing",
"updateSourceMethod": "patch",
"version": "1.57.0",
"workers": 1,
"webServer": {
"command": "npm run dev",
"url": "http://localhost:5173",
"reuseExistingServer": true,
"timeout": 120000
}
},
"suites": [
{
"title": "auth.spec.ts",
"file": "auth.spec.ts",
"column": 0,
"line": 0,
"specs": [],
"suites": [
{
"title": "Authentication Flow",
"file": "auth.spec.ts",
"line": 25,
"column": 6,
"specs": [
{
"title": "should login successfully with valid credentials",
"ok": true,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "chromium",
"projectName": "chromium",
"results": [
{
"workerIndex": 0,
"parallelIndex": 0,
"status": "passed",
"duration": 3948,
"errors": [],
"stdout": [
{
"text": "🧪 [AUTH TEST] Running: Login with valid credentials\n"
},
{
"text": "✏️ [FILL] Filling field input[type=\"email\"], input[name=\"email\"] with value: e2e@test.com\n"
},
{
"text": "✅ [FILL] Field input[type=\"email\"], input[name=\"email\"] filled successfully\n"
},
{
"text": "✏️ [FILL] Filling field input[type=\"password\"], input[name=\"password\"] with value: Xk9$mP2#vL7@nQ4!wR8\n"
},
{
"text": "✅ [FILL] Field input[type=\"password\"], input[name=\"password\"] filled successfully\n"
},
{
"text": "⚡ [FORM SUBMIT] Forcing submission of form: form\n"
},
{
"text": "🔍 [FORM SUBMIT] Waiting for form selector: form\n"
},
{
"text": "⏳ [FORM SUBMIT] Waiting for React to update state...\n"
},
{
"text": "🚀 [FORM SUBMIT] Submitting form...\n"
},
{
"text": "✅ [FORM SUBMIT] Form form submitted successfully\n"
},
{
"text": "⏳ [AUTH TEST] Waiting for Zustand to persist auth-storage...\n"
},
{
"text": " ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)\n"
},
{
"text": "✅ [AUTH TEST] Login successful (token in storage)\n"
},
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "✅ [AUTH TEST] No network errors\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-01-10T21:50:21.035Z",
"annotations": [],
"attachments": []
}
],
"status": "expected"
}
],
"id": "d748ac400d08b85935ef-efd14549b37f77aa6096",
"file": "auth.spec.ts",
"line": 41,
"column": 3
},
{
"title": "should show error with invalid credentials",
"ok": true,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "chromium",
"projectName": "chromium",
"results": [
{
"workerIndex": 0,
"parallelIndex": 0,
"status": "passed",
"duration": 1997,
"errors": [],
"stdout": [
{
"text": "🧪 [AUTH TEST] Running: Login with invalid credentials\n"
},
{
"text": "✏️ [FILL] Filling field input[type=\"email\"], input[name=\"email\"] with value: wrong@example.com\n"
},
{
"text": "✅ [FILL] Field input[type=\"email\"], input[name=\"email\"] filled successfully\n"
},
{
"text": "✏️ [FILL] Filling field input[type=\"password\"], input[name=\"password\"] with value: wrongpassword\n"
},
{
"text": "✅ [FILL] Field input[type=\"password\"], input[name=\"password\"] filled successfully\n"
},
{
"text": "⚡ [FORM SUBMIT] Forcing submission of form: form\n"
},
{
"text": "🔍 [FORM SUBMIT] Waiting for form selector: form\n"
},
{
"text": "⏳ [FORM SUBMIT] Waiting for React to update state...\n"
},
{
"text": "🚀 [FORM SUBMIT] Submitting form...\n"
},
{
"text": "✅ [FORM SUBMIT] Form form submitted successfully\n"
},
{
"text": "🔔 [TOAST] Waiting for error message...\n"
},
{
"text": "🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/login: 423\n"
},
{
"text": "🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 423 (Locked)\n"
},
{
"text": "✅ [TOAST] error message: Account is locked. Please try again later.\n"
},
{
"text": "✅ [AUTH TEST] Error shown for invalid credentials\n"
},
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "🔴 [AUTH TEST] Console errors (1):\n"
},
{
"text": " - Failed to load resource: the server responded with a status of 423 (Locked)\n"
},
{
"text": "🔴 [AUTH TEST] Network errors (1):\n"
},
{
"text": " - POST http://127.0.0.1:8080/api/v1/auth/login: 423\n"
}
],
"stderr": [
{
"text": "⚠️ [AUTH TEST] Test passed but had console errors\n"
}
],
"retry": 0,
"startTime": "2026-01-10T21:50:25.101Z",
"annotations": [],
"attachments": []
}
],
"status": "expected"
}
],
"id": "d748ac400d08b85935ef-32f56b95de6bdc3a9955",
"file": "auth.spec.ts",
"line": 107,
"column": 3
},
{
"title": "should register a new user successfully",
"ok": true,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "chromium",
"projectName": "chromium",
"results": [
{
"workerIndex": 0,
"parallelIndex": 0,
"status": "passed",
"duration": 4110,
"errors": [],
"stdout": [
{
"text": "🧪 [AUTH TEST] Running: User registration\n"
},
{
"text": "✏️ [FILL] Filling field input[name=\"email\"], input#email with value: test-1768081828662@example.com\n"
},
{
"text": "✅ [FILL] Field input[name=\"email\"], input#email filled successfully\n"
},
{
"text": "✏️ [FILL] Filling field input[name=\"username\"], input#username with value: testuser1768081828662\n"
},
{
"text": "✅ [FILL] Field input[name=\"username\"], input#username filled successfully\n"
},
{
"text": "✏️ [FILL] Filling field input[name=\"password\"], input#password with value: Str0ng!P@ssw0rd2024\n"
},
{
"text": "✅ [FILL] Field input[name=\"password\"], input#password filled successfully\n"
},
{
"text": "✏️ [FILL] Filling field input[name=\"passwordConfirm\"], input[name=\"password_confirm\"], input[name=\"confirmPassword\"], input#passwordConfirm with value: Str0ng!P@ssw0rd2024\n"
},
{
"text": "✅ [FILL] Field input[name=\"passwordConfirm\"], input[name=\"password_confirm\"], input[name=\"confirmPassword\"], input#passwordConfirm filled successfully\n"
},
{
"text": "⚡ [FORM SUBMIT] Forcing submission of form: form\n"
},
{
"text": "🔍 [FORM SUBMIT] Waiting for form selector: form\n"
},
{
"text": "⏳ [FORM SUBMIT] Waiting for React to update state...\n"
},
{
"text": "🚀 [FORM SUBMIT] Submitting form...\n"
},
{
"text": "✅ [FORM SUBMIT] Form form submitted successfully\n"
},
{
"text": "✅ [AUTH TEST] Registration successful with auto-login\n"
},
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "✅ [AUTH TEST] No network errors\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-01-10T21:50:27.127Z",
"annotations": [],
"attachments": []
}
],
"status": "expected"
}
],
"id": "d748ac400d08b85935ef-c1f7fb06f3779f5e6fd5",
"file": "auth.spec.ts",
"line": 134,
"column": 3
},
{
"title": "should show error when registering with existing email",
"ok": true,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "chromium",
"projectName": "chromium",
"results": [
{
"workerIndex": 0,
"parallelIndex": 0,
"status": "passed",
"duration": 5254,
"errors": [],
"stdout": [
{
"text": "🧪 [AUTH TEST] Running: Registration with existing email\n"
},
{
"text": "✏️ [FILL] Filling field input[name=\"email\"], input#email with value: e2e@test.com\n"
},
{
"text": "✅ [FILL] Field input[name=\"email\"], input#email filled successfully\n"
},
{
"text": "✏️ [FILL] Filling field input[name=\"username\"], input#username with value: existinguser\n"
},
{
"text": "✅ [FILL] Field input[name=\"username\"], input#username filled successfully\n"
},
{
"text": "✏️ [FILL] Filling field input[name=\"password\"], input#password with value: Str0ng!P@ssw0rd2024\n"
},
{
"text": "✅ [FILL] Field input[name=\"password\"], input#password filled successfully\n"
},
{
"text": "✏️ [FILL] Filling field input[name=\"passwordConfirm\"], input[name=\"password_confirm\"], input[name=\"confirmPassword\"], input#passwordConfirm with value: Str0ng!P@ssw0rd2024\n"
},
{
"text": "✅ [FILL] Field input[name=\"passwordConfirm\"], input[name=\"password_confirm\"], input[name=\"confirmPassword\"], input#passwordConfirm filled successfully\n"
},
{
"text": "⚡ [FORM SUBMIT] Forcing submission of form: form\n"
},
{
"text": "🔍 [FORM SUBMIT] Waiting for form selector: form\n"
},
{
"text": "⏳ [FORM SUBMIT] Waiting for React to update state...\n"
},
{
"text": "🚀 [FORM SUBMIT] Submitting form...\n"
},
{
"text": "✅ [FORM SUBMIT] Form form submitted successfully\n"
},
{
"text": "🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/register: 409\n"
},
{
"text": "🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 409 (Conflict)\n"
},
{
"text": "✅ [AUTH TEST] Error shown for existing email: \"User already exists\"\n"
},
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "🔴 [AUTH TEST] Console errors (1):\n"
},
{
"text": " - Failed to load resource: the server responded with a status of 409 (Conflict)\n"
},
{
"text": "🔴 [AUTH TEST] Network errors (1):\n"
},
{
"text": " - POST http://127.0.0.1:8080/api/v1/auth/register: 409\n"
}
],
"stderr": [
{
"text": "⚠️ [AUTH TEST] Test passed but had console errors\n"
}
],
"retry": 0,
"startTime": "2026-01-10T21:50:31.266Z",
"annotations": [],
"attachments": []
}
],
"status": "expected"
}
],
"id": "d748ac400d08b85935ef-53d5184b470bb63aefc3",
"file": "auth.spec.ts",
"line": 231,
"column": 3
},
{
"title": "should logout successfully",
"ok": true,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "chromium",
"projectName": "chromium",
"results": [
{
"workerIndex": 0,
"parallelIndex": 0,
"status": "passed",
"duration": 8189,
"errors": [],
"stdout": [
{
"text": "🧪 [AUTH TEST] Running: Logout\n"
},
{
"text": "🔐 [LOGIN] Attempting authentication as e2e@test.com...\n"
},
{
"text": "⏳ [LOGIN] Waiting 500ms before login (1768081836583ms since last login)...\n"
},
{
"text": "✏️ [LOGIN] User not authenticated, proceeding with login form...\n"
},
{
"text": "⚡ [FORM SUBMIT] Forcing submission of form: form\n"
},
{
"text": "🔍 [FORM SUBMIT] Waiting for form selector: form\n"
},
{
"text": "⏳ [FORM SUBMIT] Waiting for React to update state...\n"
},
{
"text": "🚀 [FORM SUBMIT] Submitting form...\n"
},
{
"text": "✅ [FORM SUBMIT] Form form submitted successfully\n"
},
{
"text": "⏳ [LOGIN] Waiting for networkidle after navigation...\n"
},
{
"text": "⏳ [LOGIN] Waiting for auth state to be persisted...\n"
},
{
"text": "🔍 [LOGIN] Verifying authentication state...\n"
},
{
"text": " ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)\n"
},
{
"text": "✅ [LOGIN] Successfully authenticated as e2e@test.com (token: eyJhbGciOiJIUzI1NiIs...)\n"
},
{
"text": "🔍 [AUTH TEST] Checking token presence before logout...\n"
},
{
"text": " ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)\n"
},
{
"text": "✅ [AUTH TEST] Token present before logout: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik...\n"
},
{
"text": "🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/logout: 400\n"
},
{
"text": "🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 400 (Bad Request)\n"
},
{
"text": "✅ [AUTH TEST] Logout successful\n"
},
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "🔴 [AUTH TEST] Console errors (1):\n"
},
{
"text": " - Failed to load resource: the server responded with a status of 400 (Bad Request)\n"
},
{
"text": "🔴 [AUTH TEST] Network errors (1):\n"
},
{
"text": " - POST http://127.0.0.1:8080/api/v1/auth/logout: 400\n"
}
],
"stderr": [
{
"text": "⚠️ [LOGIN] Form not visible and not on dashboard. Proceeding (might fail)...\n"
},
{
"text": "⚠️ [AUTH TEST] Test passed but had console errors\n"
}
],
"retry": 0,
"startTime": "2026-01-10T21:50:36.538Z",
"annotations": [],
"attachments": []
}
],
"status": "expected"
}
],
"id": "d748ac400d08b85935ef-c0ce6ccc7b7e02794edb",
"file": "auth.spec.ts",
"line": 293,
"column": 3
},
{
"title": "should redirect to login when accessing protected route without auth",
"ok": true,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "chromium",
"projectName": "chromium",
"results": [
{
"workerIndex": 0,
"parallelIndex": 0,
"status": "passed",
"duration": 2542,
"errors": [],
"stdout": [
{
"text": "🧪 [AUTH TEST] Running: Route guard test\n"
},
{
"text": "🔴 [REQUEST FAILED] GET http://localhost:5173/node_modules/.vite/deps/chunk-KOCE3OZ5.js?v=3f421a3c: net::ERR_ABORTED\n"
},
{
"text": "✅ [AUTH TEST] Route guard working correctly\n"
},
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "🔴 [AUTH TEST] Network errors (1):\n"
},
{
"text": " - GET http://localhost:5173/node_modules/.vite/deps/chunk-KOCE3OZ5.js?v=3f421a3c: 0\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-01-10T21:50:44.752Z",
"annotations": [],
"attachments": []
}
],
"status": "expected"
}
],
"id": "d748ac400d08b85935ef-4d2eb13aa042aa0b2d41",
"file": "auth.spec.ts",
"line": 373,
"column": 3
},
{
"title": "should persist authentication after page refresh",
"ok": true,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "chromium",
"projectName": "chromium",
"results": [
{
"workerIndex": 0,
"parallelIndex": 0,
"status": "passed",
"duration": 19135,
"errors": [],
"stdout": [
{
"text": "🧪 [AUTH TEST] Running: Auth persistence test\n"
},
{
"text": "🔐 [LOGIN] Attempting authentication as e2e@test.com...\n"
},
{
"text": "⏳ [LOGIN] Waiting 500ms before login (20281ms since last login)...\n"
},
{
"text": "✏️ [LOGIN] User not authenticated, proceeding with login form...\n"
},
{
"text": "⚡ [FORM SUBMIT] Forcing submission of form: form\n"
},
{
"text": "🔍 [FORM SUBMIT] Waiting for form selector: form\n"
},
{
"text": "⏳ [FORM SUBMIT] Waiting for React to update state...\n"
},
{
"text": "🚀 [FORM SUBMIT] Submitting form...\n"
},
{
"text": "✅ [FORM SUBMIT] Form form submitted successfully\n"
},
{
"text": "⏳ [LOGIN] Waiting for networkidle after navigation...\n"
},
{
"text": "⏳ [LOGIN] Waiting for auth state to be persisted...\n"
},
{
"text": "🔍 [LOGIN] Verifying authentication state...\n"
},
{
"text": " ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)\n"
},
{
"text": "✅ [LOGIN] Successfully authenticated as e2e@test.com (token: eyJhbGciOiJIUzI1NiIs...)\n"
},
{
"text": "✅ [AUTH TEST] Authenticated before refresh\n"
},
{
"text": " ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)\n"
},
{
"text": "✅ [AUTH TEST] Correctly persisted authentication after refresh\n"
},
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "✅ [AUTH TEST] No network errors\n"
}
],
"stderr": [
{
"text": "⚠️ [LOGIN] Form not visible and not on dashboard. Proceeding (might fail)...\n"
}
],
"retry": 0,
"startTime": "2026-01-10T21:50:47.310Z",
"annotations": [],
"attachments": []
}
],
"status": "expected"
}
],
"id": "d748ac400d08b85935ef-fb094c064cf6c63bcced",
"file": "auth.spec.ts",
"line": 395,
"column": 3
},
{
"title": "should validate login form fields",
"ok": true,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "chromium",
"projectName": "chromium",
"results": [
{
"workerIndex": 0,
"parallelIndex": 0,
"status": "passed",
"duration": 3410,
"errors": [],
"stdout": [
{
"text": "🧪 [AUTH TEST] Running: Login form validation\n"
},
{
"text": "✅ [AUTH TEST] Form validation prevented submission (stayed on login page)\n"
},
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "✅ [AUTH TEST] No network errors\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-01-10T21:51:06.459Z",
"annotations": [],
"attachments": []
}
],
"status": "expected"
}
],
"id": "d748ac400d08b85935ef-73ae53ed4fd70aaa00c2",
"file": "auth.spec.ts",
"line": 452,
"column": 3
},
{
"title": "should show error when passwords do not match during registration",
"ok": true,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "chromium",
"projectName": "chromium",
"results": [
{
"workerIndex": 0,
"parallelIndex": 0,
"status": "passed",
"duration": 4310,
"errors": [],
"stdout": [
{
"text": "🧪 [AUTH TEST] Running: Password mismatch validation\n"
},
{
"text": "✏️ [FILL] Filling field input[name=\"email\"], input#email with value: newuser@example.com\n"
},
{
"text": "✅ [FILL] Field input[name=\"email\"], input#email filled successfully\n"
},
{
"text": "✏️ [FILL] Filling field input[name=\"password\"], input#password with value: Password123456!\n"
},
{
"text": "✅ [FILL] Field input[name=\"password\"], input#password filled successfully\n"
},
{
"text": "✏️ [FILL] Filling field input[name=\"passwordConfirm\"], input[name=\"password_confirm\"], input[name=\"confirmPassword\"] with value: DifferentPassword!\n"
},
{
"text": "✅ [FILL] Field input[name=\"passwordConfirm\"], input[name=\"password_confirm\"], input[name=\"confirmPassword\"] filled successfully\n"
},
{
"text": "⚡ [FORM SUBMIT] Forcing submission of form: form\n"
},
{
"text": "🔍 [FORM SUBMIT] Waiting for form selector: form\n"
},
{
"text": "⏳ [FORM SUBMIT] Waiting for React to update state...\n"
},
{
"text": "🚀 [FORM SUBMIT] Submitting form...\n"
},
{
"text": "✅ [FORM SUBMIT] Form form submitted successfully\n"
},
{
"text": "✅ [AUTH TEST] Password mismatch error shown (found by text)\n"
},
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "✅ [AUTH TEST] No network errors\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-01-10T21:51:09.890Z",
"annotations": [],
"attachments": []
}
],
"status": "expected"
}
],
"id": "d748ac400d08b85935ef-184539997e56a19b11c0",
"file": "auth.spec.ts",
"line": 509,
"column": 3
},
{
"title": "should login successfully with valid credentials",
"ok": true,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "firefox",
"projectName": "firefox",
"results": [
{
"workerIndex": 1,
"parallelIndex": 0,
"status": "passed",
"duration": 5503,
"errors": [],
"stdout": [
{
"text": "🧪 [AUTH TEST] Running: Login with valid credentials\n"
},
{
"text": "✏️ [FILL] Filling field input[type=\"email\"], input[name=\"email\"] with value: e2e@test.com\n"
},
{
"text": "✅ [FILL] Field input[type=\"email\"], input[name=\"email\"] filled successfully\n"
},
{
"text": "✏️ [FILL] Filling field input[type=\"password\"], input[name=\"password\"] with value: Xk9$mP2#vL7@nQ4!wR8\n"
},
{
"text": "✅ [FILL] Field input[type=\"password\"], input[name=\"password\"] filled successfully\n"
},
{
"text": "⚡ [FORM SUBMIT] Forcing submission of form: form\n"
},
{
"text": "🔍 [FORM SUBMIT] Waiting for form selector: form\n"
},
{
"text": "⏳ [FORM SUBMIT] Waiting for React to update state...\n"
},
{
"text": "🚀 [FORM SUBMIT] Submitting form...\n"
},
{
"text": "✅ [FORM SUBMIT] Form form submitted successfully\n"
},
{
"text": "🔴 [CONSOLE ERROR] [JavaScript Error: \"Cookie “refresh_token” has been rejected because it is in a cross-site context and its “SameSite” is “Lax” or “Strict”.\" {file: \"http://127.0.0.1:8080/api/v1/auth/login\" line: 0}]\n"
},
{
"text": "⏳ [AUTH TEST] Waiting for Zustand to persist auth-storage...\n"
},
{
"text": " ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)\n"
},
{
"text": "✅ [AUTH TEST] Login successful (token in storage)\n"
},
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "🔴 [AUTH TEST] Console errors (1):\n"
},
{
"text": " - [JavaScript Error: \"Cookie “refresh_token” has been rejected because it is in a cross-site context and its “SameSite” is “Lax” or “Strict”.\" {file: \"http://127.0.0.1:8080/api/v1/auth/login\" line: 0}]\n"
},
{
"text": "✅ [AUTH TEST] No network errors\n"
}
],
"stderr": [
{
"text": "⚠️ [AUTH TEST] Test passed but had console errors\n"
}
],
"retry": 0,
"startTime": "2026-01-10T21:51:15.269Z",
"annotations": [],
"attachments": []
}
],
"status": "expected"
}
],
"id": "d748ac400d08b85935ef-14d0e4fdf8b73cd887ae",
"file": "auth.spec.ts",
"line": 41,
"column": 3
},
{
"title": "should show error with invalid credentials",
"ok": true,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "firefox",
"projectName": "firefox",
"results": [
{
"workerIndex": 1,
"parallelIndex": 0,
"status": "passed",
"duration": 1858,
"errors": [],
"stdout": [
{
"text": "🧪 [AUTH TEST] Running: Login with invalid credentials\n"
},
{
"text": "✏️ [FILL] Filling field input[type=\"email\"], input[name=\"email\"] with value: wrong@example.com\n"
},
{
"text": "✅ [FILL] Field input[type=\"email\"], input[name=\"email\"] filled successfully\n"
},
{
"text": "✏️ [FILL] Filling field input[type=\"password\"], input[name=\"password\"] with value: wrongpassword\n"
},
{
"text": "✅ [FILL] Field input[type=\"password\"], input[name=\"password\"] filled successfully\n"
},
{
"text": "⚡ [FORM SUBMIT] Forcing submission of form: form\n"
},
{
"text": "🔍 [FORM SUBMIT] Waiting for form selector: form\n"
},
{
"text": "⏳ [FORM SUBMIT] Waiting for React to update state...\n"
},
{
"text": "🚀 [FORM SUBMIT] Submitting form...\n"
},
{
"text": "✅ [FORM SUBMIT] Form form submitted successfully\n"
},
{
"text": "🔔 [TOAST] Waiting for error message...\n"
},
{
"text": "🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/login: 423\n"
},
{
"text": "✅ [TOAST] error message: Account is locked. Please try again later.\n"
},
{
"text": "✅ [AUTH TEST] Error shown for invalid credentials\n"
},
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "🔴 [AUTH TEST] Network errors (1):\n"
},
{
"text": " - POST http://127.0.0.1:8080/api/v1/auth/login: 423\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-01-10T21:51:21.304Z",
"annotations": [],
"attachments": []
}
],
"status": "expected"
}
],
"id": "d748ac400d08b85935ef-d2604529717af9e35508",
"file": "auth.spec.ts",
"line": 107,
"column": 3
},
{
"title": "should register a new user successfully",
"ok": true,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "firefox",
"projectName": "firefox",
"results": [
{
"workerIndex": 1,
"parallelIndex": 0,
"status": "passed",
"duration": 3681,
"errors": [],
"stdout": [
{
"text": "🧪 [AUTH TEST] Running: User registration\n"
},
{
"text": "✏️ [FILL] Filling field input[name=\"email\"], input#email with value: test-1768081884491@example.com\n"
},
{
"text": "✅ [FILL] Field input[name=\"email\"], input#email filled successfully\n"
},
{
"text": "✏️ [FILL] Filling field input[name=\"username\"], input#username with value: testuser1768081884491\n"
},
{
"text": "✅ [FILL] Field input[name=\"username\"], input#username filled successfully\n"
},
{
"text": "✏️ [FILL] Filling field input[name=\"password\"], input#password with value: Str0ng!P@ssw0rd2024\n"
},
{
"text": "✅ [FILL] Field input[name=\"password\"], input#password filled successfully\n"
},
{
"text": "✏️ [FILL] Filling field input[name=\"passwordConfirm\"], input[name=\"password_confirm\"], input[name=\"confirmPassword\"], input#passwordConfirm with value: Str0ng!P@ssw0rd2024\n"
},
{
"text": "✅ [FILL] Field input[name=\"passwordConfirm\"], input[name=\"password_confirm\"], input[name=\"confirmPassword\"], input#passwordConfirm filled successfully\n"
},
{
"text": "⚡ [FORM SUBMIT] Forcing submission of form: form\n"
},
{
"text": "🔍 [FORM SUBMIT] Waiting for form selector: form\n"
},
{
"text": "⏳ [FORM SUBMIT] Waiting for React to update state...\n"
},
{
"text": "🚀 [FORM SUBMIT] Submitting form...\n"
},
{
"text": "✅ [FORM SUBMIT] Form form submitted successfully\n"
},
{
"text": "🔴 [CONSOLE ERROR] [JavaScript Error: \"Cookie “refresh_token” has been rejected because it is in a cross-site context and its “SameSite” is “Lax” or “Strict”.\" {file: \"http://127.0.0.1:8080/api/v1/auth/register\" line: 0}]\n"
},
{
"text": "✅ [AUTH TEST] Registration successful with auto-login\n"
},
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "🔴 [AUTH TEST] Console errors (1):\n"
},
{
"text": " - [JavaScript Error: \"Cookie “refresh_token” has been rejected because it is in a cross-site context and its “SameSite” is “Lax” or “Strict”.\" {file: \"http://127.0.0.1:8080/api/v1/auth/register\" line: 0}]\n"
},
{
"text": "✅ [AUTH TEST] No network errors\n"
}
],
"stderr": [
{
"text": "⚠️ [AUTH TEST] Test passed but had console errors\n"
}
],
"retry": 0,
"startTime": "2026-01-10T21:51:23.192Z",
"annotations": [],
"attachments": []
}
],
"status": "expected"
}
],
"id": "d748ac400d08b85935ef-e25661f5336753eaeb6e",
"file": "auth.spec.ts",
"line": 134,
"column": 3
},
{
"title": "should show error when registering with existing email",
"ok": true,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "firefox",
"projectName": "firefox",
"results": [
{
"workerIndex": 1,
"parallelIndex": 0,
"status": "passed",
"duration": 5870,
"errors": [],
"stdout": [
{
"text": "🧪 [AUTH TEST] Running: Registration with existing email\n"
},
{
"text": "✏️ [FILL] Filling field input[name=\"email\"], input#email with value: e2e@test.com\n"
},
{
"text": "✅ [FILL] Field input[name=\"email\"], input#email filled successfully\n"
},
{
"text": "✏️ [FILL] Filling field input[name=\"username\"], input#username with value: existinguser\n"
},
{
"text": "✅ [FILL] Field input[name=\"username\"], input#username filled successfully\n"
},
{
"text": "✏️ [FILL] Filling field input[name=\"password\"], input#password with value: Str0ng!P@ssw0rd2024\n"
},
{
"text": "✅ [FILL] Field input[name=\"password\"], input#password filled successfully\n"
},
{
"text": "✏️ [FILL] Filling field input[name=\"passwordConfirm\"], input[name=\"password_confirm\"], input[name=\"confirmPassword\"], input#passwordConfirm with value: Str0ng!P@ssw0rd2024\n"
},
{
"text": "✅ [FILL] Field input[name=\"passwordConfirm\"], input[name=\"password_confirm\"], input[name=\"confirmPassword\"], input#passwordConfirm filled successfully\n"
},
{
"text": "⚡ [FORM SUBMIT] Forcing submission of form: form\n"
},
{
"text": "🔍 [FORM SUBMIT] Waiting for form selector: form\n"
},
{
"text": "⏳ [FORM SUBMIT] Waiting for React to update state...\n"
},
{
"text": "🚀 [FORM SUBMIT] Submitting form...\n"
},
{
"text": "✅ [FORM SUBMIT] Form form submitted successfully\n"
},
{
"text": "🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/register: 409\n"
},
{
"text": "✅ [AUTH TEST] Error shown for existing email: \"User already exists\"\n"
},
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "🔴 [AUTH TEST] Network errors (1):\n"
},
{
"text": " - POST http://127.0.0.1:8080/api/v1/auth/register: 409\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-01-10T21:51:26.901Z",
"annotations": [],
"attachments": []
}
],
"status": "expected"
}
],
"id": "d748ac400d08b85935ef-8e523d14978e1481a048",
"file": "auth.spec.ts",
"line": 231,
"column": 3
},
{
"title": "should logout successfully",
"ok": true,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "firefox",
"projectName": "firefox",
"results": [
{
"workerIndex": 1,
"parallelIndex": 0,
"status": "passed",
"duration": 9716,
"errors": [],
"stdout": [
{
"text": "🧪 [AUTH TEST] Running: Logout\n"
},
{
"text": "🔐 [LOGIN] Attempting authentication as e2e@test.com...\n"
},
{
"text": "⏳ [LOGIN] Waiting 500ms before login (1768081893040ms since last login)...\n"
},
{
"text": "✏️ [LOGIN] User not authenticated, proceeding with login form...\n"
},
{
"text": "⚡ [FORM SUBMIT] Forcing submission of form: form\n"
},
{
"text": "🔍 [FORM SUBMIT] Waiting for form selector: form\n"
},
{
"text": "⏳ [FORM SUBMIT] Waiting for React to update state...\n"
},
{
"text": "🚀 [FORM SUBMIT] Submitting form...\n"
},
{
"text": "✅ [FORM SUBMIT] Form form submitted successfully\n"
},
{
"text": "🔴 [CONSOLE ERROR] [JavaScript Error: \"Cookie “refresh_token” has been rejected because it is in a cross-site context and its “SameSite” is “Lax” or “Strict”.\" {file: \"http://127.0.0.1:8080/api/v1/auth/login\" line: 0}]\n"
},
{
"text": "⏳ [LOGIN] Waiting for networkidle after navigation...\n"
},
{
"text": "⏳ [LOGIN] Waiting for auth state to be persisted...\n"
},
{
"text": "🔍 [LOGIN] Verifying authentication state...\n"
},
{
"text": " ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)\n"
},
{
"text": "✅ [LOGIN] Successfully authenticated as e2e@test.com (token: eyJhbGciOiJIUzI1NiIs...)\n"
},
{
"text": "🔍 [AUTH TEST] Checking token presence before logout...\n"
},
{
"text": " ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)\n"
},
{
"text": "✅ [AUTH TEST] Token present before logout: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik...\n"
},
{
"text": "🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/logout: 400\n"
},
{
"text": "✅ [AUTH TEST] Logout successful\n"
},
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "🔴 [AUTH TEST] Console errors (1):\n"
},
{
"text": " - [JavaScript Error: \"Cookie “refresh_token” has been rejected because it is in a cross-site context and its “SameSite” is “Lax” or “Strict”.\" {file: \"http://127.0.0.1:8080/api/v1/auth/login\" line: 0}]\n"
},
{
"text": "🔴 [AUTH TEST] Network errors (1):\n"
},
{
"text": " - POST http://127.0.0.1:8080/api/v1/auth/logout: 400\n"
}
],
"stderr": [
{
"text": "⚠️ [LOGIN] Form not visible and not on dashboard. Proceeding (might fail)...\n"
},
{
"text": "⚠️ [AUTH TEST] Test passed but had console errors\n"
}
],
"retry": 0,
"startTime": "2026-01-10T21:51:32.792Z",
"annotations": [],
"attachments": []
}
],
"status": "expected"
}
],
"id": "d748ac400d08b85935ef-4410c42745b7a4d89d03",
"file": "auth.spec.ts",
"line": 293,
"column": 3
},
{
"title": "should redirect to login when accessing protected route without auth",
"ok": true,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "firefox",
"projectName": "firefox",
"results": [
{
"workerIndex": 1,
"parallelIndex": 0,
"status": "passed",
"duration": 2298,
"errors": [],
"stdout": [
{
"text": "🧪 [AUTH TEST] Running: Route guard test\n"
},
{
"text": "✅ [AUTH TEST] Route guard working correctly\n"
},
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "✅ [AUTH TEST] No network errors\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-01-10T21:51:42.548Z",
"annotations": [],
"attachments": []
}
],
"status": "expected"
}
],
"id": "d748ac400d08b85935ef-4329ca7f3e8c21f77534",
"file": "auth.spec.ts",
"line": 373,
"column": 3
},
{
"title": "should persist authentication after page refresh",
"ok": false,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "firefox",
"projectName": "firefox",
"results": [
{
"workerIndex": 1,
"parallelIndex": 0,
"status": "failed",
"duration": 12981,
"error": {
"message": "Error: page.goto: NS_ERROR_CONNECTION_REFUSED\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\u001b[22m\n",
"stack": "Error: page.goto: NS_ERROR_CONNECTION_REFUSED\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\u001b[22m\n\n at loginAsUser (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:174:18)\n at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:403:5",
"location": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts",
"column": 18,
"line": 174
},
"snippet": "\u001b[90m at \u001b[39mutils/test-helpers.ts:174\n\n\u001b[0m \u001b[90m 172 |\u001b[39m \u001b[36mwhile\u001b[39m (retries \u001b[33m>\u001b[39m \u001b[35m0\u001b[39m) {\n \u001b[90m 173 |\u001b[39m \u001b[36mtry\u001b[39m {\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 174 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`${TEST_CONFIG.FRONTEND_URL}/login`\u001b[39m\u001b[33m,\u001b[39m {\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 175 |\u001b[39m waitUntil\u001b[33m:\u001b[39m \u001b[32m'domcontentloaded'\u001b[39m\u001b[33m,\u001b[39m\n \u001b[90m 176 |\u001b[39m timeout\u001b[33m:\u001b[39m \u001b[33mTEST_CONFIG\u001b[39m\u001b[33m.\u001b[39m\u001b[33mDEFAULT_TIMEOUT\u001b[39m\u001b[33m,\u001b[39m\n \u001b[90m 177 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m"
},
"errors": [
{
"location": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts",
"column": 18,
"line": 174
},
"message": "Error: page.goto: NS_ERROR_CONNECTION_REFUSED\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\u001b[22m\n\n\n\u001b[90m at \u001b[39mutils/test-helpers.ts:174\n\n\u001b[0m \u001b[90m 172 |\u001b[39m \u001b[36mwhile\u001b[39m (retries \u001b[33m>\u001b[39m \u001b[35m0\u001b[39m) {\n \u001b[90m 173 |\u001b[39m \u001b[36mtry\u001b[39m {\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 174 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`${TEST_CONFIG.FRONTEND_URL}/login`\u001b[39m\u001b[33m,\u001b[39m {\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 175 |\u001b[39m waitUntil\u001b[33m:\u001b[39m \u001b[32m'domcontentloaded'\u001b[39m\u001b[33m,\u001b[39m\n \u001b[90m 176 |\u001b[39m timeout\u001b[33m:\u001b[39m \u001b[33mTEST_CONFIG\u001b[39m\u001b[33m.\u001b[39m\u001b[33mDEFAULT_TIMEOUT\u001b[39m\u001b[33m,\u001b[39m\n \u001b[90m 177 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\n\u001b[2m at loginAsUser (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:174:18)\u001b[22m\n\u001b[2m at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:403:5\u001b[22m"
}
],
"stdout": [
{
"text": "🧪 [AUTH TEST] Running: Auth persistence test\n"
},
{
"text": "🔐 [LOGIN] Attempting authentication as e2e@test.com...\n"
},
{
"text": "⏳ [LOGIN] Waiting 500ms before login (21565ms since last login)...\n"
},
{
"text": "🔴 [REQUEST FAILED] GET http://localhost:5173/login: NS_ERROR_CONNECTION_REFUSED\n"
},
{
"text": "🔴 [REQUEST FAILED] GET http://localhost:5173/login: NS_ERROR_CONNECTION_REFUSED\n"
},
{
"text": "🔴 [REQUEST FAILED] GET http://localhost:5173/login: NS_ERROR_CONNECTION_REFUSED\n"
},
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "🔴 [AUTH TEST] Network errors (3):\n"
},
{
"text": " - GET http://localhost:5173/login: 0\n"
},
{
"text": " - GET http://localhost:5173/login: 0\n"
},
{
"text": " - GET http://localhost:5173/login: 0\n"
}
],
"stderr": [
{
"text": "⚠️ [LOGIN] Navigation failed (retries left: 2): page.goto: NS_ERROR_CONNECTION_REFUSED\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\u001b[22m\n\n at loginAsUser \u001b[90m(/home/senke/git/talas/veza/apps/web/\u001b[39me2e/utils/test-helpers.ts:174:18\u001b[90m)\u001b[39m\n at \u001b[90m/home/senke/git/talas/veza/apps/web/\u001b[39me2e/auth.spec.ts:403:5 {\n name: \u001b[32m'Error'\u001b[39m,\n [\u001b[32mSymbol(step)\u001b[39m]: {\n location: {\n file: \u001b[32m'/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts'\u001b[39m,\n line: \u001b[33m174\u001b[39m,\n column: \u001b[33m18\u001b[39m,\n function: \u001b[32m'loginAsUser'\u001b[39m\n },\n category: \u001b[32m'pw:api'\u001b[39m,\n title: \u001b[32m'Navigate to \"/login\"'\u001b[39m,\n apiName: \u001b[32m'page.goto'\u001b[39m,\n params: {\n url: \u001b[32m'http://localhost:5173/login'\u001b[39m,\n waitUntil: \u001b[32m'domcontentloaded'\u001b[39m,\n timeout: \u001b[33m30000\u001b[39m\n },\n group: \u001b[90mundefined\u001b[39m,\n stepId: \u001b[32m'pw:api@28'\u001b[39m,\n boxedStack: \u001b[90mundefined\u001b[39m,\n steps: [],\n attachmentIndices: [],\n info: TestStepInfoImpl {\n annotations: [],\n _testInfo: \u001b[36m[TestInfoImpl]\u001b[39m,\n _stepId: \u001b[32m'pw:api@28'\u001b[39m,\n _title: \u001b[32m'Navigate to \"/login\"'\u001b[39m,\n _parentStep: \u001b[90mundefined\u001b[39m,\n skip: \u001b[36m[Function (anonymous)]\u001b[39m\n },\n complete: \u001b[36m[Function: complete]\u001b[39m,\n endWallTime: \u001b[33m1768081915627\u001b[39m,\n error: {\n message: \u001b[32m'Error: page.goto: NS_ERROR_CONNECTION_REFUSED\\n'\u001b[39m +\n \u001b[32m'Call log:\\n'\u001b[39m +\n \u001b[32m'\\x1B[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\\x1B[22m\\n'\u001b[39m,\n stack: \u001b[32m'Error: page.goto: NS_ERROR_CONNECTION_REFUSED\\n'\u001b[39m +\n \u001b[32m'Call log:\\n'\u001b[39m +\n \u001b[32m'\\x1B[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\\x1B[22m\\n'\u001b[39m +\n \u001b[32m'\\n'\u001b[39m +\n \u001b[32m' at loginAsUser (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:174:18)\\n'\u001b[39m +\n \u001b[32m' at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:403:5'\u001b[39m,\n cause: \u001b[90mundefined\u001b[39m\n }\n }\n}\n"
},
{
"text": "⚠️ [LOGIN] Navigation failed (retries left: 1): page.goto: NS_ERROR_CONNECTION_REFUSED\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\u001b[22m\n\n at loginAsUser \u001b[90m(/home/senke/git/talas/veza/apps/web/\u001b[39me2e/utils/test-helpers.ts:174:18\u001b[90m)\u001b[39m\n at \u001b[90m/home/senke/git/talas/veza/apps/web/\u001b[39me2e/auth.spec.ts:403:5 {\n name: \u001b[32m'Error'\u001b[39m,\n [\u001b[32mSymbol(step)\u001b[39m]: {\n location: {\n file: \u001b[32m'/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts'\u001b[39m,\n line: \u001b[33m174\u001b[39m,\n column: \u001b[33m18\u001b[39m,\n function: \u001b[32m'loginAsUser'\u001b[39m\n },\n category: \u001b[32m'pw:api'\u001b[39m,\n title: \u001b[32m'Navigate to \"/login\"'\u001b[39m,\n apiName: \u001b[32m'page.goto'\u001b[39m,\n params: {\n url: \u001b[32m'http://localhost:5173/login'\u001b[39m,\n waitUntil: \u001b[32m'domcontentloaded'\u001b[39m,\n timeout: \u001b[33m30000\u001b[39m\n },\n group: \u001b[90mundefined\u001b[39m,\n stepId: \u001b[32m'pw:api@30'\u001b[39m,\n boxedStack: \u001b[90mundefined\u001b[39m,\n steps: [],\n attachmentIndices: [],\n info: TestStepInfoImpl {\n annotations: [],\n _testInfo: \u001b[36m[TestInfoImpl]\u001b[39m,\n _stepId: \u001b[32m'pw:api@30'\u001b[39m,\n _title: \u001b[32m'Navigate to \"/login\"'\u001b[39m,\n _parentStep: \u001b[90mundefined\u001b[39m,\n skip: \u001b[36m[Function (anonymous)]\u001b[39m\n },\n complete: \u001b[36m[Function: complete]\u001b[39m,\n endWallTime: \u001b[33m1768081916650\u001b[39m,\n error: {\n message: \u001b[32m'Error: page.goto: NS_ERROR_CONNECTION_REFUSED\\n'\u001b[39m +\n \u001b[32m'Call log:\\n'\u001b[39m +\n \u001b[32m'\\x1B[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\\x1B[22m\\n'\u001b[39m,\n stack: \u001b[32m'Error: page.goto: NS_ERROR_CONNECTION_REFUSED\\n'\u001b[39m +\n \u001b[32m'Call log:\\n'\u001b[39m +\n \u001b[32m'\\x1B[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\\x1B[22m\\n'\u001b[39m +\n \u001b[32m'\\n'\u001b[39m +\n \u001b[32m' at loginAsUser (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:174:18)\\n'\u001b[39m +\n \u001b[32m' at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:403:5'\u001b[39m,\n cause: \u001b[90mundefined\u001b[39m\n }\n }\n}\n"
},
{
"text": "⚠️ [LOGIN] Navigation failed (retries left: 0): page.goto: NS_ERROR_CONNECTION_REFUSED\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\u001b[22m\n\n at loginAsUser \u001b[90m(/home/senke/git/talas/veza/apps/web/\u001b[39me2e/utils/test-helpers.ts:174:18\u001b[90m)\u001b[39m\n at \u001b[90m/home/senke/git/talas/veza/apps/web/\u001b[39me2e/auth.spec.ts:403:5 {\n name: \u001b[32m'Error'\u001b[39m,\n [\u001b[32mSymbol(step)\u001b[39m]: {\n location: {\n file: \u001b[32m'/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts'\u001b[39m,\n line: \u001b[33m174\u001b[39m,\n column: \u001b[33m18\u001b[39m,\n function: \u001b[32m'loginAsUser'\u001b[39m\n },\n category: \u001b[32m'pw:api'\u001b[39m,\n title: \u001b[32m'Navigate to \"/login\"'\u001b[39m,\n apiName: \u001b[32m'page.goto'\u001b[39m,\n params: {\n url: \u001b[32m'http://localhost:5173/login'\u001b[39m,\n waitUntil: \u001b[32m'domcontentloaded'\u001b[39m,\n timeout: \u001b[33m30000\u001b[39m\n },\n group: \u001b[90mundefined\u001b[39m,\n stepId: \u001b[32m'pw:api@32'\u001b[39m,\n boxedStack: \u001b[90mundefined\u001b[39m,\n steps: [],\n attachmentIndices: [],\n info: TestStepInfoImpl {\n annotations: [],\n _testInfo: \u001b[36m[TestInfoImpl]\u001b[39m,\n _stepId: \u001b[32m'pw:api@32'\u001b[39m,\n _title: \u001b[32m'Navigate to \"/login\"'\u001b[39m,\n _parentStep: \u001b[90mundefined\u001b[39m,\n skip: \u001b[36m[Function (anonymous)]\u001b[39m\n },\n complete: \u001b[36m[Function: complete]\u001b[39m,\n endWallTime: \u001b[33m1768081917665\u001b[39m,\n error: {\n message: \u001b[32m'Error: page.goto: NS_ERROR_CONNECTION_REFUSED\\n'\u001b[39m +\n \u001b[32m'Call log:\\n'\u001b[39m +\n \u001b[32m'\\x1B[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\\x1B[22m\\n'\u001b[39m,\n stack: \u001b[32m'Error: page.goto: NS_ERROR_CONNECTION_REFUSED\\n'\u001b[39m +\n \u001b[32m'Call log:\\n'\u001b[39m +\n \u001b[32m'\\x1B[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\\x1B[22m\\n'\u001b[39m +\n \u001b[32m'\\n'\u001b[39m +\n \u001b[32m' at loginAsUser (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:174:18)\\n'\u001b[39m +\n \u001b[32m' at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:403:5'\u001b[39m,\n cause: \u001b[90mundefined\u001b[39m\n }\n }\n}\n"
}
],
"retry": 0,
"startTime": "2026-01-10T21:51:44.885Z",
"annotations": [],
"attachments": [
{
"name": "screenshot",
"contentType": "image/png",
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-Authentication-Flow-s-12d3c-tication-after-page-refresh-firefox/test-failed-1.png"
},
{
"name": "video",
"contentType": "video/webm",
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-Authentication-Flow-s-12d3c-tication-after-page-refresh-firefox/video.webm"
},
{
"name": "error-context",
"contentType": "text/markdown",
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-Authentication-Flow-s-12d3c-tication-after-page-refresh-firefox/error-context.md"
}
],
"errorLocation": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts",
"column": 18,
"line": 174
}
}
],
"status": "unexpected"
}
],
"id": "d748ac400d08b85935ef-7ce71de8a36364c96c8d",
"file": "auth.spec.ts",
"line": 395,
"column": 3
},
{
"title": "should validate login form fields",
"ok": false,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "firefox",
"projectName": "firefox",
"results": [
{
"workerIndex": 2,
"parallelIndex": 0,
"status": "failed",
"duration": 843,
"error": {
"message": "Error: page.goto: NS_ERROR_CONNECTION_REFUSED\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"load\"\u001b[22m\n",
"stack": "Error: page.goto: NS_ERROR_CONNECTION_REFUSED\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"load\"\u001b[22m\n\n at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:455:16",
"location": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts",
"column": 16,
"line": 455
},
"snippet": "\u001b[0m \u001b[90m 453 |\u001b[39m console\u001b[33m.\u001b[39mlog(\u001b[32m'🧪 [AUTH TEST] Running: Login form validation'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 454 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 455 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`${TEST_CONFIG.FRONTEND_URL}/login`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 456 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForLoadState(\u001b[32m'domcontentloaded'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 457 |\u001b[39m\n \u001b[90m 458 |\u001b[39m \u001b[90m// Wait for form to be ready\u001b[39m\u001b[0m"
},
"errors": [
{
"location": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts",
"column": 16,
"line": 455
},
"message": "Error: page.goto: NS_ERROR_CONNECTION_REFUSED\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"load\"\u001b[22m\n\n\n\u001b[0m \u001b[90m 453 |\u001b[39m console\u001b[33m.\u001b[39mlog(\u001b[32m'🧪 [AUTH TEST] Running: Login form validation'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 454 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 455 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`${TEST_CONFIG.FRONTEND_URL}/login`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 456 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForLoadState(\u001b[32m'domcontentloaded'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 457 |\u001b[39m\n \u001b[90m 458 |\u001b[39m \u001b[90m// Wait for form to be ready\u001b[39m\u001b[0m\n\u001b[2m at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:455:16\u001b[22m"
}
],
"stdout": [
{
"text": "🧪 [AUTH TEST] Running: Login form validation\n"
},
{
"text": "🔴 [REQUEST FAILED] GET http://localhost:5173/login: NS_ERROR_CONNECTION_REFUSED\n"
},
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "🔴 [AUTH TEST] Network errors (1):\n"
},
{
"text": " - GET http://localhost:5173/login: 0\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-01-10T21:51:58.883Z",
"annotations": [],
"attachments": [
{
"name": "screenshot",
"contentType": "image/png",
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-Authentication-Flow-should-validate-login-form-fields-firefox/test-failed-1.png"
},
{
"name": "video",
"contentType": "video/webm",
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-Authentication-Flow-should-validate-login-form-fields-firefox/video.webm"
},
{
"name": "error-context",
"contentType": "text/markdown",
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-Authentication-Flow-should-validate-login-form-fields-firefox/error-context.md"
}
],
"errorLocation": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts",
"column": 16,
"line": 455
}
}
],
"status": "unexpected"
}
],
"id": "d748ac400d08b85935ef-9f21426262cd48deaf49",
"file": "auth.spec.ts",
"line": 452,
"column": 3
},
{
"title": "should show error when passwords do not match during registration",
"ok": false,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "firefox",
"projectName": "firefox",
"results": [
{
"workerIndex": 3,
"parallelIndex": 0,
"status": "failed",
"duration": 929,
"error": {
"message": "Error: page.goto: NS_ERROR_CONNECTION_REFUSED\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/register\", waiting until \"load\"\u001b[22m\n",
"stack": "Error: page.goto: NS_ERROR_CONNECTION_REFUSED\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/register\", waiting until \"load\"\u001b[22m\n\n at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:512:16",
"location": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts",
"column": 16,
"line": 512
},
"snippet": "\u001b[0m \u001b[90m 510 |\u001b[39m console\u001b[33m.\u001b[39mlog(\u001b[32m'🧪 [AUTH TEST] Running: Password mismatch validation'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 511 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 512 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`${TEST_CONFIG.FRONTEND_URL}/register`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 513 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForLoadState(\u001b[32m'domcontentloaded'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 514 |\u001b[39m\n \u001b[90m 515 |\u001b[39m \u001b[90m// Attendre que la page soit complètement chargée\u001b[39m\u001b[0m"
},
"errors": [
{
"location": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts",
"column": 16,
"line": 512
},
"message": "Error: page.goto: NS_ERROR_CONNECTION_REFUSED\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/register\", waiting until \"load\"\u001b[22m\n\n\n\u001b[0m \u001b[90m 510 |\u001b[39m console\u001b[33m.\u001b[39mlog(\u001b[32m'🧪 [AUTH TEST] Running: Password mismatch validation'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 511 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 512 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`${TEST_CONFIG.FRONTEND_URL}/register`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 513 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForLoadState(\u001b[32m'domcontentloaded'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 514 |\u001b[39m\n \u001b[90m 515 |\u001b[39m \u001b[90m// Attendre que la page soit complètement chargée\u001b[39m\u001b[0m\n\u001b[2m at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:512:16\u001b[22m"
}
],
"stdout": [
{
"text": "🧪 [AUTH TEST] Running: Password mismatch validation\n"
},
{
"text": "🔴 [REQUEST FAILED] GET http://localhost:5173/register: NS_ERROR_CONNECTION_REFUSED\n"
},
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "🔴 [AUTH TEST] Network errors (1):\n"
},
{
"text": " - GET http://localhost:5173/register: 0\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-01-10T21:52:01.197Z",
"annotations": [],
"attachments": [
{
"name": "screenshot",
"contentType": "image/png",
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-Authentication-Flow-s-216c1-t-match-during-registration-firefox/test-failed-1.png"
},
{
"name": "video",
"contentType": "video/webm",
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-Authentication-Flow-s-216c1-t-match-during-registration-firefox/video.webm"
},
{
"name": "error-context",
"contentType": "text/markdown",
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-Authentication-Flow-s-216c1-t-match-during-registration-firefox/error-context.md"
}
],
"errorLocation": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts",
"column": 16,
"line": 512
}
}
],
"status": "unexpected"
}
],
"id": "d748ac400d08b85935ef-3b0220e3d2e27f513770",
"file": "auth.spec.ts",
"line": 509,
"column": 3
},
{
"title": "should login successfully with valid credentials",
"ok": false,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "webkit",
"projectName": "webkit",
"results": [
{
"workerIndex": 4,
"parallelIndex": 0,
"status": "failed",
"duration": 6,
"error": {
"message": "Error: browserType.launch: \n╔══════════════════════════════════════════════════════╗\n║ Host system is missing dependencies to run browsers. ║\n║ Please install them with the following command: ║\n║ ║\n║ sudo npx playwright install-deps ║\n║ ║\n║ Alternatively, use apt: ║\n║ sudo apt-get install libicu74\\ ║\n║ libjpeg-turbo8\\ ║\n║ gstreamer1.0-libav ║\n║ ║\n║ <3 Playwright Team ║\n╚══════════════════════════════════════════════════════╝",
"stack": "Error: browserType.launch: \n╔══════════════════════════════════════════════════════╗\n║ Host system is missing dependencies to run browsers. ║\n║ Please install them with the following command: ║\n║ ║\n║ sudo npx playwright install-deps ║\n║ ║\n║ Alternatively, use apt: ║\n║ sudo apt-get install libicu74\\ ║\n║ libjpeg-turbo8\\ ║\n║ gstreamer1.0-libav ║\n║ ║\n║ <3 Playwright Team ║\n╚══════════════════════════════════════════════════════╝"
},
"errors": [
{
"message": "Error: browserType.launch: \n╔══════════════════════════════════════════════════════╗\n║ Host system is missing dependencies to run browsers. ║\n║ Please install them with the following command: ║\n║ ║\n║ sudo npx playwright install-deps ║\n║ ║\n║ Alternatively, use apt: ║\n║ sudo apt-get install libicu74\\ ║\n║ libjpeg-turbo8\\ ║\n║ gstreamer1.0-libav ║\n║ ║\n║ <3 Playwright Team ║\n╚══════════════════════════════════════════════════════╝"
}
],
"stdout": [
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "✅ [AUTH TEST] No network errors\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-01-10T21:52:04.404Z",
"annotations": [],
"attachments": []
}
],
"status": "unexpected"
}
],
"id": "d748ac400d08b85935ef-9e1583275625d6e8142a",
"file": "auth.spec.ts",
"line": 41,
"column": 3
},
{
"title": "should show error with invalid credentials",
"ok": false,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "webkit",
"projectName": "webkit",
"results": [
{
"workerIndex": 5,
"parallelIndex": 0,
"status": "failed",
"duration": 7,
"error": {
"message": "Error: browserType.launch: \n╔══════════════════════════════════════════════════════╗\n║ Host system is missing dependencies to run browsers. ║\n║ Please install them with the following command: ║\n║ ║\n║ sudo npx playwright install-deps ║\n║ ║\n║ Alternatively, use apt: ║\n║ sudo apt-get install libicu74\\ ║\n║ libjpeg-turbo8\\ ║\n║ gstreamer1.0-libav ║\n║ ║\n║ <3 Playwright Team ║\n╚══════════════════════════════════════════════════════╝",
"stack": "Error: browserType.launch: \n╔══════════════════════════════════════════════════════╗\n║ Host system is missing dependencies to run browsers. ║\n║ Please install them with the following command: ║\n║ ║\n║ sudo npx playwright install-deps ║\n║ ║\n║ Alternatively, use apt: ║\n║ sudo apt-get install libicu74\\ ║\n║ libjpeg-turbo8\\ ║\n║ gstreamer1.0-libav ║\n║ ║\n║ <3 Playwright Team ║\n╚══════════════════════════════════════════════════════╝"
},
"errors": [
{
"message": "Error: browserType.launch: \n╔══════════════════════════════════════════════════════╗\n║ Host system is missing dependencies to run browsers. ║\n║ Please install them with the following command: ║\n║ ║\n║ sudo npx playwright install-deps ║\n║ ║\n║ Alternatively, use apt: ║\n║ sudo apt-get install libicu74\\ ║\n║ libjpeg-turbo8\\ ║\n║ gstreamer1.0-libav ║\n║ ║\n║ <3 Playwright Team ║\n╚══════════════════════════════════════════════════════╝"
}
],
"stdout": [
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "✅ [AUTH TEST] No network errors\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-01-10T21:52:05.509Z",
"annotations": [],
"attachments": []
}
],
"status": "unexpected"
}
],
"id": "d748ac400d08b85935ef-4201a53bab8fcc8ef77f",
"file": "auth.spec.ts",
"line": 107,
"column": 3
},
{
"title": "should register a new user successfully",
"ok": false,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "webkit",
"projectName": "webkit",
"results": [
{
"workerIndex": 6,
"parallelIndex": 0,
"status": "failed",
"duration": 6,
"error": {
"message": "Error: browserType.launch: \n╔══════════════════════════════════════════════════════╗\n║ Host system is missing dependencies to run browsers. ║\n║ Please install them with the following command: ║\n║ ║\n║ sudo npx playwright install-deps ║\n║ ║\n║ Alternatively, use apt: ║\n║ sudo apt-get install libicu74\\ ║\n║ libjpeg-turbo8\\ ║\n║ gstreamer1.0-libav ║\n║ ║\n║ <3 Playwright Team ║\n╚══════════════════════════════════════════════════════╝",
"stack": "Error: browserType.launch: \n╔══════════════════════════════════════════════════════╗\n║ Host system is missing dependencies to run browsers. ║\n║ Please install them with the following command: ║\n║ ║\n║ sudo npx playwright install-deps ║\n║ ║\n║ Alternatively, use apt: ║\n║ sudo apt-get install libicu74\\ ║\n║ libjpeg-turbo8\\ ║\n║ gstreamer1.0-libav ║\n║ ║\n║ <3 Playwright Team ║\n╚══════════════════════════════════════════════════════╝"
},
"errors": [
{
"message": "Error: browserType.launch: \n╔══════════════════════════════════════════════════════╗\n║ Host system is missing dependencies to run browsers. ║\n║ Please install them with the following command: ║\n║ ║\n║ sudo npx playwright install-deps ║\n║ ║\n║ Alternatively, use apt: ║\n║ sudo apt-get install libicu74\\ ║\n║ libjpeg-turbo8\\ ║\n║ gstreamer1.0-libav ║\n║ ║\n║ <3 Playwright Team ║\n╚══════════════════════════════════════════════════════╝"
}
],
"stdout": [
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "✅ [AUTH TEST] No network errors\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-01-10T21:52:06.649Z",
"annotations": [],
"attachments": []
}
],
"status": "unexpected"
}
],
"id": "d748ac400d08b85935ef-e1e04a4d63f068ce6c7f",
"file": "auth.spec.ts",
"line": 134,
"column": 3
},
{
"title": "should show error when registering with existing email",
"ok": false,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "webkit",
"projectName": "webkit",
"results": [
{
"workerIndex": 7,
"parallelIndex": 0,
"status": "failed",
"duration": 10,
"error": {
"message": "Error: browserType.launch: \n╔══════════════════════════════════════════════════════╗\n║ Host system is missing dependencies to run browsers. ║\n║ Please install them with the following command: ║\n║ ║\n║ sudo npx playwright install-deps ║\n║ ║\n║ Alternatively, use apt: ║\n║ sudo apt-get install libicu74\\ ║\n║ libjpeg-turbo8\\ ║\n║ gstreamer1.0-libav ║\n║ ║\n║ <3 Playwright Team ║\n╚══════════════════════════════════════════════════════╝",
"stack": "Error: browserType.launch: \n╔══════════════════════════════════════════════════════╗\n║ Host system is missing dependencies to run browsers. ║\n║ Please install them with the following command: ║\n║ ║\n║ sudo npx playwright install-deps ║\n║ ║\n║ Alternatively, use apt: ║\n║ sudo apt-get install libicu74\\ ║\n║ libjpeg-turbo8\\ ║\n║ gstreamer1.0-libav ║\n║ ║\n║ <3 Playwright Team ║\n╚══════════════════════════════════════════════════════╝"
},
"errors": [
{
"message": "Error: browserType.launch: \n╔══════════════════════════════════════════════════════╗\n║ Host system is missing dependencies to run browsers. ║\n║ Please install them with the following command: ║\n║ ║\n║ sudo npx playwright install-deps ║\n║ ║\n║ Alternatively, use apt: ║\n║ sudo apt-get install libicu74\\ ║\n║ libjpeg-turbo8\\ ║\n║ gstreamer1.0-libav ║\n║ ║\n║ <3 Playwright Team ║\n╚══════════════════════════════════════════════════════╝"
}
],
"stdout": [
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "✅ [AUTH TEST] No network errors\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-01-10T21:52:07.973Z",
"annotations": [],
"attachments": []
}
],
"status": "unexpected"
}
],
"id": "d748ac400d08b85935ef-e9be5a0fa5f268f981b2",
"file": "auth.spec.ts",
"line": 231,
"column": 3
},
{
"title": "should logout successfully",
"ok": false,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "webkit",
"projectName": "webkit",
"results": [
{
"workerIndex": 8,
"parallelIndex": 0,
"status": "failed",
"duration": 9,
"error": {
"message": "Error: browserType.launch: \n╔══════════════════════════════════════════════════════╗\n║ Host system is missing dependencies to run browsers. ║\n║ Please install them with the following command: ║\n║ ║\n║ sudo npx playwright install-deps ║\n║ ║\n║ Alternatively, use apt: ║\n║ sudo apt-get install libicu74\\ ║\n║ libjpeg-turbo8\\ ║\n║ gstreamer1.0-libav ║\n║ ║\n║ <3 Playwright Team ║\n╚══════════════════════════════════════════════════════╝",
"stack": "Error: browserType.launch: \n╔══════════════════════════════════════════════════════╗\n║ Host system is missing dependencies to run browsers. ║\n║ Please install them with the following command: ║\n║ ║\n║ sudo npx playwright install-deps ║\n║ ║\n║ Alternatively, use apt: ║\n║ sudo apt-get install libicu74\\ ║\n║ libjpeg-turbo8\\ ║\n║ gstreamer1.0-libav ║\n║ ║\n║ <3 Playwright Team ║\n╚══════════════════════════════════════════════════════╝"
},
"errors": [
{
"message": "Error: browserType.launch: \n╔══════════════════════════════════════════════════════╗\n║ Host system is missing dependencies to run browsers. ║\n║ Please install them with the following command: ║\n║ ║\n║ sudo npx playwright install-deps ║\n║ ║\n║ Alternatively, use apt: ║\n║ sudo apt-get install libicu74\\ ║\n║ libjpeg-turbo8\\ ║\n║ gstreamer1.0-libav ║\n║ ║\n║ <3 Playwright Team ║\n╚══════════════════════════════════════════════════════╝"
}
],
"stdout": [
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "✅ [AUTH TEST] No network errors\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-01-10T21:52:09.040Z",
"annotations": [],
"attachments": []
}
],
"status": "unexpected"
}
],
"id": "d748ac400d08b85935ef-1f08bff9df919d288ae6",
"file": "auth.spec.ts",
"line": 293,
"column": 3
},
{
"title": "should redirect to login when accessing protected route without auth",
"ok": false,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "webkit",
"projectName": "webkit",
"results": [
{
"workerIndex": 9,
"parallelIndex": 0,
"status": "failed",
"duration": 5,
"error": {
"message": "Error: browserType.launch: \n╔══════════════════════════════════════════════════════╗\n║ Host system is missing dependencies to run browsers. ║\n║ Please install them with the following command: ║\n║ ║\n║ sudo npx playwright install-deps ║\n║ ║\n║ Alternatively, use apt: ║\n║ sudo apt-get install libicu74\\ ║\n║ libjpeg-turbo8\\ ║\n║ gstreamer1.0-libav ║\n║ ║\n║ <3 Playwright Team ║\n╚══════════════════════════════════════════════════════╝",
"stack": "Error: browserType.launch: \n╔══════════════════════════════════════════════════════╗\n║ Host system is missing dependencies to run browsers. ║\n║ Please install them with the following command: ║\n║ ║\n║ sudo npx playwright install-deps ║\n║ ║\n║ Alternatively, use apt: ║\n║ sudo apt-get install libicu74\\ ║\n║ libjpeg-turbo8\\ ║\n║ gstreamer1.0-libav ║\n║ ║\n║ <3 Playwright Team ║\n╚══════════════════════════════════════════════════════╝"
},
"errors": [
{
"message": "Error: browserType.launch: \n╔══════════════════════════════════════════════════════╗\n║ Host system is missing dependencies to run browsers. ║\n║ Please install them with the following command: ║\n║ ║\n║ sudo npx playwright install-deps ║\n║ ║\n║ Alternatively, use apt: ║\n║ sudo apt-get install libicu74\\ ║\n║ libjpeg-turbo8\\ ║\n║ gstreamer1.0-libav ║\n║ ║\n║ <3 Playwright Team ║\n╚══════════════════════════════════════════════════════╝"
}
],
"stdout": [
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "✅ [AUTH TEST] No network errors\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-01-10T21:52:09.935Z",
"annotations": [],
"attachments": []
}
],
"status": "unexpected"
}
],
"id": "d748ac400d08b85935ef-21fd3dcd248dab5b8131",
"file": "auth.spec.ts",
"line": 373,
"column": 3
},
{
"title": "should persist authentication after page refresh",
"ok": false,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "webkit",
"projectName": "webkit",
"results": [
{
"workerIndex": 10,
"parallelIndex": 0,
"status": "failed",
"duration": 7,
"error": {
"message": "Error: browserType.launch: \n╔══════════════════════════════════════════════════════╗\n║ Host system is missing dependencies to run browsers. ║\n║ Please install them with the following command: ║\n║ ║\n║ sudo npx playwright install-deps ║\n║ ║\n║ Alternatively, use apt: ║\n║ sudo apt-get install libicu74\\ ║\n║ libjpeg-turbo8\\ ║\n║ gstreamer1.0-libav ║\n║ ║\n║ <3 Playwright Team ║\n╚══════════════════════════════════════════════════════╝",
"stack": "Error: browserType.launch: \n╔══════════════════════════════════════════════════════╗\n║ Host system is missing dependencies to run browsers. ║\n║ Please install them with the following command: ║\n║ ║\n║ sudo npx playwright install-deps ║\n║ ║\n║ Alternatively, use apt: ║\n║ sudo apt-get install libicu74\\ ║\n║ libjpeg-turbo8\\ ║\n║ gstreamer1.0-libav ║\n║ ║\n║ <3 Playwright Team ║\n╚══════════════════════════════════════════════════════╝"
},
"errors": [
{
"message": "Error: browserType.launch: \n╔══════════════════════════════════════════════════════╗\n║ Host system is missing dependencies to run browsers. ║\n║ Please install them with the following command: ║\n║ ║\n║ sudo npx playwright install-deps ║\n║ ║\n║ Alternatively, use apt: ║\n║ sudo apt-get install libicu74\\ ║\n║ libjpeg-turbo8\\ ║\n║ gstreamer1.0-libav ║\n║ ║\n║ <3 Playwright Team ║\n╚══════════════════════════════════════════════════════╝"
}
],
"stdout": [
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "✅ [AUTH TEST] No network errors\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-01-10T21:52:10.798Z",
"annotations": [],
"attachments": []
}
],
"status": "unexpected"
}
],
"id": "d748ac400d08b85935ef-b650fa26a32d2a037a5a",
"file": "auth.spec.ts",
"line": 395,
"column": 3
},
{
"title": "should validate login form fields",
"ok": false,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "webkit",
"projectName": "webkit",
"results": [
{
"workerIndex": 11,
"parallelIndex": 0,
"status": "failed",
"duration": 5,
"error": {
"message": "Error: browserType.launch: \n╔══════════════════════════════════════════════════════╗\n║ Host system is missing dependencies to run browsers. ║\n║ Please install them with the following command: ║\n║ ║\n║ sudo npx playwright install-deps ║\n║ ║\n║ Alternatively, use apt: ║\n║ sudo apt-get install libicu74\\ ║\n║ libjpeg-turbo8\\ ║\n║ gstreamer1.0-libav ║\n║ ║\n║ <3 Playwright Team ║\n╚══════════════════════════════════════════════════════╝",
"stack": "Error: browserType.launch: \n╔══════════════════════════════════════════════════════╗\n║ Host system is missing dependencies to run browsers. ║\n║ Please install them with the following command: ║\n║ ║\n║ sudo npx playwright install-deps ║\n║ ║\n║ Alternatively, use apt: ║\n║ sudo apt-get install libicu74\\ ║\n║ libjpeg-turbo8\\ ║\n║ gstreamer1.0-libav ║\n║ ║\n║ <3 Playwright Team ║\n╚══════════════════════════════════════════════════════╝"
},
"errors": [
{
"message": "Error: browserType.launch: \n╔══════════════════════════════════════════════════════╗\n║ Host system is missing dependencies to run browsers. ║\n║ Please install them with the following command: ║\n║ ║\n║ sudo npx playwright install-deps ║\n║ ║\n║ Alternatively, use apt: ║\n║ sudo apt-get install libicu74\\ ║\n║ libjpeg-turbo8\\ ║\n║ gstreamer1.0-libav ║\n║ ║\n║ <3 Playwright Team ║\n╚══════════════════════════════════════════════════════╝"
}
],
"stdout": [
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "✅ [AUTH TEST] No network errors\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-01-10T21:52:11.755Z",
"annotations": [],
"attachments": []
}
],
"status": "unexpected"
}
],
"id": "d748ac400d08b85935ef-5ee828237b6b2f781ea3",
"file": "auth.spec.ts",
"line": 452,
"column": 3
},
{
"title": "should show error when passwords do not match during registration",
"ok": false,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "webkit",
"projectName": "webkit",
"results": [
{
"workerIndex": 12,
"parallelIndex": 0,
"status": "failed",
"duration": 3,
"error": {
"message": "Error: browserType.launch: \n╔══════════════════════════════════════════════════════╗\n║ Host system is missing dependencies to run browsers. ║\n║ Please install them with the following command: ║\n║ ║\n║ sudo npx playwright install-deps ║\n║ ║\n║ Alternatively, use apt: ║\n║ sudo apt-get install libicu74\\ ║\n║ libjpeg-turbo8\\ ║\n║ gstreamer1.0-libav ║\n║ ║\n║ <3 Playwright Team ║\n╚══════════════════════════════════════════════════════╝",
"stack": "Error: browserType.launch: \n╔══════════════════════════════════════════════════════╗\n║ Host system is missing dependencies to run browsers. ║\n║ Please install them with the following command: ║\n║ ║\n║ sudo npx playwright install-deps ║\n║ ║\n║ Alternatively, use apt: ║\n║ sudo apt-get install libicu74\\ ║\n║ libjpeg-turbo8\\ ║\n║ gstreamer1.0-libav ║\n║ ║\n║ <3 Playwright Team ║\n╚══════════════════════════════════════════════════════╝"
},
"errors": [
{
"message": "Error: browserType.launch: \n╔══════════════════════════════════════════════════════╗\n║ Host system is missing dependencies to run browsers. ║\n║ Please install them with the following command: ║\n║ ║\n║ sudo npx playwright install-deps ║\n║ ║\n║ Alternatively, use apt: ║\n║ sudo apt-get install libicu74\\ ║\n║ libjpeg-turbo8\\ ║\n║ gstreamer1.0-libav ║\n║ ║\n║ <3 Playwright Team ║\n╚══════════════════════════════════════════════════════╝"
}
],
"stdout": [
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "✅ [AUTH TEST] No network errors\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-01-10T21:52:12.602Z",
"annotations": [],
"attachments": []
}
],
"status": "unexpected"
}
],
"id": "d748ac400d08b85935ef-4c0ea2b25148c5c9623e",
"file": "auth.spec.ts",
"line": 509,
"column": 3
},
{
"title": "should login successfully with valid credentials",
"ok": false,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "msedge",
"projectName": "msedge",
"results": [
{
"workerIndex": 13,
"parallelIndex": 0,
"status": "failed",
"duration": 229,
"error": {
"message": "Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"load\"\u001b[22m\n",
"stack": "Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"load\"\u001b[22m\n\n at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:44:16",
"location": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts",
"column": 16,
"line": 44
},
"snippet": "\u001b[0m \u001b[90m 42 |\u001b[39m console\u001b[33m.\u001b[39mlog(\u001b[32m'🧪 [AUTH TEST] Running: Login with valid credentials'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 43 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 44 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`${TEST_CONFIG.FRONTEND_URL}/login`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 45 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForLoadState(\u001b[32m'domcontentloaded'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 46 |\u001b[39m\n \u001b[90m 47 |\u001b[39m \u001b[90m// Attendre que le formulaire soit prêt (premier test peut être plus lent)\u001b[39m\u001b[0m"
},
"errors": [
{
"location": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts",
"column": 16,
"line": 44
},
"message": "Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"load\"\u001b[22m\n\n\n\u001b[0m \u001b[90m 42 |\u001b[39m console\u001b[33m.\u001b[39mlog(\u001b[32m'🧪 [AUTH TEST] Running: Login with valid credentials'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 43 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 44 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`${TEST_CONFIG.FRONTEND_URL}/login`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 45 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForLoadState(\u001b[32m'domcontentloaded'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 46 |\u001b[39m\n \u001b[90m 47 |\u001b[39m \u001b[90m// Attendre que le formulaire soit prêt (premier test peut être plus lent)\u001b[39m\u001b[0m\n\u001b[2m at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:44:16\u001b[22m"
}
],
"stdout": [
{
"text": "🧪 [AUTH TEST] Running: Login with valid credentials\n"
},
{
"text": "🔴 [REQUEST FAILED] GET http://localhost:5173/login: net::ERR_CONNECTION_REFUSED\n"
},
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "🔴 [AUTH TEST] Network errors (1):\n"
},
{
"text": " - GET http://localhost:5173/login: 0\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-01-10T21:52:13.560Z",
"annotations": [],
"attachments": [
{
"name": "screenshot",
"contentType": "image/png",
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-Authentication-Flow-s-74377-ully-with-valid-credentials-msedge/test-failed-1.png"
},
{
"name": "video",
"contentType": "video/webm",
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-Authentication-Flow-s-74377-ully-with-valid-credentials-msedge/video.webm"
}
],
"errorLocation": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts",
"column": 16,
"line": 44
}
}
],
"status": "unexpected"
}
],
"id": "d748ac400d08b85935ef-6752a9a2e7a05cd11902",
"file": "auth.spec.ts",
"line": 41,
"column": 3
},
{
"title": "should show error with invalid credentials",
"ok": false,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "msedge",
"projectName": "msedge",
"results": [
{
"workerIndex": 14,
"parallelIndex": 0,
"status": "failed",
"duration": 216,
"error": {
"message": "Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"load\"\u001b[22m\n",
"stack": "Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"load\"\u001b[22m\n\n at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:110:16",
"location": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts",
"column": 16,
"line": 110
},
"snippet": "\u001b[0m \u001b[90m 108 |\u001b[39m console\u001b[33m.\u001b[39mlog(\u001b[32m'🧪 [AUTH TEST] Running: Login with invalid credentials'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 109 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 110 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`${TEST_CONFIG.FRONTEND_URL}/login`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 111 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForLoadState(\u001b[32m'domcontentloaded'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 112 |\u001b[39m\n \u001b[90m 113 |\u001b[39m \u001b[90m// Remplir avec des credentials invalides\u001b[39m\u001b[0m"
},
"errors": [
{
"location": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts",
"column": 16,
"line": 110
},
"message": "Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"load\"\u001b[22m\n\n\n\u001b[0m \u001b[90m 108 |\u001b[39m console\u001b[33m.\u001b[39mlog(\u001b[32m'🧪 [AUTH TEST] Running: Login with invalid credentials'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 109 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 110 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`${TEST_CONFIG.FRONTEND_URL}/login`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 111 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForLoadState(\u001b[32m'domcontentloaded'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 112 |\u001b[39m\n \u001b[90m 113 |\u001b[39m \u001b[90m// Remplir avec des credentials invalides\u001b[39m\u001b[0m\n\u001b[2m at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:110:16\u001b[22m"
}
],
"stdout": [
{
"text": "🧪 [AUTH TEST] Running: Login with invalid credentials\n"
},
{
"text": "🔴 [REQUEST FAILED] GET http://localhost:5173/login: net::ERR_CONNECTION_REFUSED\n"
},
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "🔴 [AUTH TEST] Network errors (1):\n"
},
{
"text": " - GET http://localhost:5173/login: 0\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-01-10T21:52:14.545Z",
"annotations": [],
"attachments": [
{
"name": "screenshot",
"contentType": "image/png",
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-Authentication-Flow-s-22fb7-or-with-invalid-credentials-msedge/test-failed-1.png"
},
{
"name": "video",
"contentType": "video/webm",
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-Authentication-Flow-s-22fb7-or-with-invalid-credentials-msedge/video.webm"
}
],
"errorLocation": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts",
"column": 16,
"line": 110
}
}
],
"status": "unexpected"
}
],
"id": "d748ac400d08b85935ef-59c9cf8302a5a962929c",
"file": "auth.spec.ts",
"line": 107,
"column": 3
},
{
"title": "should register a new user successfully",
"ok": false,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "msedge",
"projectName": "msedge",
"results": [
{
"workerIndex": 15,
"parallelIndex": 0,
"status": "failed",
"duration": 225,
"error": {
"message": "Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/register\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/register\", waiting until \"load\"\u001b[22m\n",
"stack": "Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/register\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/register\", waiting until \"load\"\u001b[22m\n\n at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:137:16",
"location": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts",
"column": 16,
"line": 137
},
"snippet": "\u001b[0m \u001b[90m 135 |\u001b[39m console\u001b[33m.\u001b[39mlog(\u001b[32m'🧪 [AUTH TEST] Running: User registration'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 136 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 137 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`${TEST_CONFIG.FRONTEND_URL}/register`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 138 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForLoadState(\u001b[32m'domcontentloaded'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 139 |\u001b[39m\n \u001b[90m 140 |\u001b[39m \u001b[90m// Attendre que la page soit complètement chargée\u001b[39m\u001b[0m"
},
"errors": [
{
"location": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts",
"column": 16,
"line": 137
},
"message": "Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/register\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/register\", waiting until \"load\"\u001b[22m\n\n\n\u001b[0m \u001b[90m 135 |\u001b[39m console\u001b[33m.\u001b[39mlog(\u001b[32m'🧪 [AUTH TEST] Running: User registration'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 136 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 137 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`${TEST_CONFIG.FRONTEND_URL}/register`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 138 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForLoadState(\u001b[32m'domcontentloaded'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 139 |\u001b[39m\n \u001b[90m 140 |\u001b[39m \u001b[90m// Attendre que la page soit complètement chargée\u001b[39m\u001b[0m\n\u001b[2m at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:137:16\u001b[22m"
}
],
"stdout": [
{
"text": "🧪 [AUTH TEST] Running: User registration\n"
},
{
"text": "🔴 [REQUEST FAILED] GET http://localhost:5173/register: net::ERR_CONNECTION_REFUSED\n"
},
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "🔴 [AUTH TEST] Network errors (1):\n"
},
{
"text": " - GET http://localhost:5173/register: 0\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-01-10T21:52:15.612Z",
"annotations": [],
"attachments": [
{
"name": "screenshot",
"contentType": "image/png",
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-Authentication-Flow-s-53dd2-ter-a-new-user-successfully-msedge/test-failed-1.png"
},
{
"name": "video",
"contentType": "video/webm",
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-Authentication-Flow-s-53dd2-ter-a-new-user-successfully-msedge/video.webm"
}
],
"errorLocation": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts",
"column": 16,
"line": 137
}
}
],
"status": "unexpected"
}
],
"id": "d748ac400d08b85935ef-89d90a66686f781c5e5b",
"file": "auth.spec.ts",
"line": 134,
"column": 3
},
{
"title": "should show error when registering with existing email",
"ok": false,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "msedge",
"projectName": "msedge",
"results": [
{
"workerIndex": 16,
"parallelIndex": 0,
"status": "failed",
"duration": 208,
"error": {
"message": "Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/register\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/register\", waiting until \"load\"\u001b[22m\n",
"stack": "Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/register\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/register\", waiting until \"load\"\u001b[22m\n\n at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:234:16",
"location": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts",
"column": 16,
"line": 234
},
"snippet": "\u001b[0m \u001b[90m 232 |\u001b[39m console\u001b[33m.\u001b[39mlog(\u001b[32m'🧪 [AUTH TEST] Running: Registration with existing email'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 233 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 234 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`${TEST_CONFIG.FRONTEND_URL}/register`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 235 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForLoadState(\u001b[32m'domcontentloaded'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 236 |\u001b[39m\n \u001b[90m 237 |\u001b[39m \u001b[90m// Attendre que la page soit complètement chargée\u001b[39m\u001b[0m"
},
"errors": [
{
"location": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts",
"column": 16,
"line": 234
},
"message": "Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/register\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/register\", waiting until \"load\"\u001b[22m\n\n\n\u001b[0m \u001b[90m 232 |\u001b[39m console\u001b[33m.\u001b[39mlog(\u001b[32m'🧪 [AUTH TEST] Running: Registration with existing email'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 233 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 234 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`${TEST_CONFIG.FRONTEND_URL}/register`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 235 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForLoadState(\u001b[32m'domcontentloaded'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 236 |\u001b[39m\n \u001b[90m 237 |\u001b[39m \u001b[90m// Attendre que la page soit complètement chargée\u001b[39m\u001b[0m\n\u001b[2m at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:234:16\u001b[22m"
}
],
"stdout": [
{
"text": "🧪 [AUTH TEST] Running: Registration with existing email\n"
},
{
"text": "🔴 [REQUEST FAILED] GET http://localhost:5173/register: net::ERR_CONNECTION_REFUSED\n"
},
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "🔴 [AUTH TEST] Network errors (1):\n"
},
{
"text": " - GET http://localhost:5173/register: 0\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-01-10T21:52:16.683Z",
"annotations": [],
"attachments": [
{
"name": "screenshot",
"contentType": "image/png",
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-Authentication-Flow-s-3c58b-stering-with-existing-email-msedge/test-failed-1.png"
},
{
"name": "video",
"contentType": "video/webm",
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-Authentication-Flow-s-3c58b-stering-with-existing-email-msedge/video.webm"
}
],
"errorLocation": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts",
"column": 16,
"line": 234
}
}
],
"status": "unexpected"
}
],
"id": "d748ac400d08b85935ef-46e52fdc699a850c1641",
"file": "auth.spec.ts",
"line": 231,
"column": 3
},
{
"title": "should logout successfully",
"ok": false,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "msedge",
"projectName": "msedge",
"results": [
{
"workerIndex": 17,
"parallelIndex": 0,
"status": "failed",
"duration": 2776,
"error": {
"message": "Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\u001b[22m\n",
"stack": "Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\u001b[22m\n\n at loginAsUser (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:174:18)\n at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:297:5",
"location": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts",
"column": 18,
"line": 174
},
"snippet": "\u001b[90m at \u001b[39mutils/test-helpers.ts:174\n\n\u001b[0m \u001b[90m 172 |\u001b[39m \u001b[36mwhile\u001b[39m (retries \u001b[33m>\u001b[39m \u001b[35m0\u001b[39m) {\n \u001b[90m 173 |\u001b[39m \u001b[36mtry\u001b[39m {\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 174 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`${TEST_CONFIG.FRONTEND_URL}/login`\u001b[39m\u001b[33m,\u001b[39m {\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 175 |\u001b[39m waitUntil\u001b[33m:\u001b[39m \u001b[32m'domcontentloaded'\u001b[39m\u001b[33m,\u001b[39m\n \u001b[90m 176 |\u001b[39m timeout\u001b[33m:\u001b[39m \u001b[33mTEST_CONFIG\u001b[39m\u001b[33m.\u001b[39m\u001b[33mDEFAULT_TIMEOUT\u001b[39m\u001b[33m,\u001b[39m\n \u001b[90m 177 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m"
},
"errors": [
{
"location": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts",
"column": 18,
"line": 174
},
"message": "Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\u001b[22m\n\n\n\u001b[90m at \u001b[39mutils/test-helpers.ts:174\n\n\u001b[0m \u001b[90m 172 |\u001b[39m \u001b[36mwhile\u001b[39m (retries \u001b[33m>\u001b[39m \u001b[35m0\u001b[39m) {\n \u001b[90m 173 |\u001b[39m \u001b[36mtry\u001b[39m {\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 174 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`${TEST_CONFIG.FRONTEND_URL}/login`\u001b[39m\u001b[33m,\u001b[39m {\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 175 |\u001b[39m waitUntil\u001b[33m:\u001b[39m \u001b[32m'domcontentloaded'\u001b[39m\u001b[33m,\u001b[39m\n \u001b[90m 176 |\u001b[39m timeout\u001b[33m:\u001b[39m \u001b[33mTEST_CONFIG\u001b[39m\u001b[33m.\u001b[39m\u001b[33mDEFAULT_TIMEOUT\u001b[39m\u001b[33m,\u001b[39m\n \u001b[90m 177 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\n\u001b[2m at loginAsUser (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:174:18)\u001b[22m\n\u001b[2m at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:297:5\u001b[22m"
}
],
"stdout": [
{
"text": "🧪 [AUTH TEST] Running: Logout\n"
},
{
"text": "🔐 [LOGIN] Attempting authentication as e2e@test.com...\n"
},
{
"text": "⏳ [LOGIN] Waiting 500ms before login (1768081937863ms since last login)...\n"
},
{
"text": "🔴 [REQUEST FAILED] GET http://localhost:5173/login: net::ERR_CONNECTION_REFUSED\n"
},
{
"text": "🔴 [REQUEST FAILED] GET http://localhost:5173/login: net::ERR_CONNECTION_REFUSED\n"
},
{
"text": "🔴 [REQUEST FAILED] GET http://localhost:5173/login: net::ERR_CONNECTION_REFUSED\n"
},
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "🔴 [AUTH TEST] Network errors (3):\n"
},
{
"text": " - GET http://localhost:5173/login: 0\n"
},
{
"text": " - GET http://localhost:5173/login: 0\n"
},
{
"text": " - GET http://localhost:5173/login: 0\n"
}
],
"stderr": [
{
"text": "⚠️ [LOGIN] Navigation failed (retries left: 2): page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\u001b[22m\n\n at loginAsUser \u001b[90m(/home/senke/git/talas/veza/apps/web/\u001b[39me2e/utils/test-helpers.ts:174:18\u001b[90m)\u001b[39m\n at \u001b[90m/home/senke/git/talas/veza/apps/web/\u001b[39me2e/auth.spec.ts:297:5 {\n name: \u001b[32m'Error'\u001b[39m,\n [\u001b[32mSymbol(step)\u001b[39m]: {\n location: {\n file: \u001b[32m'/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts'\u001b[39m,\n line: \u001b[33m174\u001b[39m,\n column: \u001b[33m18\u001b[39m,\n function: \u001b[32m'loginAsUser'\u001b[39m\n },\n category: \u001b[32m'pw:api'\u001b[39m,\n title: \u001b[32m'Navigate to \"/login\"'\u001b[39m,\n apiName: \u001b[32m'page.goto'\u001b[39m,\n params: {\n url: \u001b[32m'http://localhost:5173/login'\u001b[39m,\n waitUntil: \u001b[32m'domcontentloaded'\u001b[39m,\n timeout: \u001b[33m30000\u001b[39m\n },\n group: \u001b[90mundefined\u001b[39m,\n stepId: \u001b[32m'pw:api@36'\u001b[39m,\n boxedStack: \u001b[90mundefined\u001b[39m,\n steps: [],\n attachmentIndices: [],\n info: TestStepInfoImpl {\n annotations: [],\n _testInfo: \u001b[36m[TestInfoImpl]\u001b[39m,\n _stepId: \u001b[32m'pw:api@36'\u001b[39m,\n _title: \u001b[32m'Navigate to \"/login\"'\u001b[39m,\n _parentStep: \u001b[90mundefined\u001b[39m,\n skip: \u001b[36m[Function (anonymous)]\u001b[39m\n },\n complete: \u001b[36m[Function: complete]\u001b[39m,\n endWallTime: \u001b[33m1768081938386\u001b[39m,\n error: {\n message: \u001b[32m'Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\\n'\u001b[39m +\n \u001b[32m'Call log:\\n'\u001b[39m +\n \u001b[32m'\\x1B[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\\x1B[22m\\n'\u001b[39m,\n stack: \u001b[32m'Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\\n'\u001b[39m +\n \u001b[32m'Call log:\\n'\u001b[39m +\n \u001b[32m'\\x1B[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\\x1B[22m\\n'\u001b[39m +\n \u001b[32m'\\n'\u001b[39m +\n \u001b[32m' at loginAsUser (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:174:18)\\n'\u001b[39m +\n \u001b[32m' at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:297:5'\u001b[39m,\n cause: \u001b[90mundefined\u001b[39m\n }\n }\n}\n"
},
{
"text": "⚠️ [LOGIN] Navigation failed (retries left: 1): page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\u001b[22m\n\n at loginAsUser \u001b[90m(/home/senke/git/talas/veza/apps/web/\u001b[39me2e/utils/test-helpers.ts:174:18\u001b[90m)\u001b[39m\n at \u001b[90m/home/senke/git/talas/veza/apps/web/\u001b[39me2e/auth.spec.ts:297:5 {\n name: \u001b[32m'Error'\u001b[39m,\n [\u001b[32mSymbol(step)\u001b[39m]: {\n location: {\n file: \u001b[32m'/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts'\u001b[39m,\n line: \u001b[33m174\u001b[39m,\n column: \u001b[33m18\u001b[39m,\n function: \u001b[32m'loginAsUser'\u001b[39m\n },\n category: \u001b[32m'pw:api'\u001b[39m,\n title: \u001b[32m'Navigate to \"/login\"'\u001b[39m,\n apiName: \u001b[32m'page.goto'\u001b[39m,\n params: {\n url: \u001b[32m'http://localhost:5173/login'\u001b[39m,\n waitUntil: \u001b[32m'domcontentloaded'\u001b[39m,\n timeout: \u001b[33m30000\u001b[39m\n },\n group: \u001b[90mundefined\u001b[39m,\n stepId: \u001b[32m'pw:api@38'\u001b[39m,\n boxedStack: \u001b[90mundefined\u001b[39m,\n steps: [],\n attachmentIndices: [],\n info: TestStepInfoImpl {\n annotations: [],\n _testInfo: \u001b[36m[TestInfoImpl]\u001b[39m,\n _stepId: \u001b[32m'pw:api@38'\u001b[39m,\n _title: \u001b[32m'Navigate to \"/login\"'\u001b[39m,\n _parentStep: \u001b[90mundefined\u001b[39m,\n skip: \u001b[36m[Function (anonymous)]\u001b[39m\n },\n complete: \u001b[36m[Function: complete]\u001b[39m,\n endWallTime: \u001b[33m1768081939409\u001b[39m,\n error: {\n message: \u001b[32m'Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\\n'\u001b[39m +\n \u001b[32m'Call log:\\n'\u001b[39m +\n \u001b[32m'\\x1B[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\\x1B[22m\\n'\u001b[39m,\n stack: \u001b[32m'Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\\n'\u001b[39m +\n \u001b[32m'Call log:\\n'\u001b[39m +\n \u001b[32m'\\x1B[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\\x1B[22m\\n'\u001b[39m +\n \u001b[32m'\\n'\u001b[39m +\n \u001b[32m' at loginAsUser (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:174:18)\\n'\u001b[39m +\n \u001b[32m' at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:297:5'\u001b[39m,\n cause: \u001b[90mundefined\u001b[39m\n }\n }\n}\n"
},
{
"text": "⚠️ [LOGIN] Navigation failed (retries left: 0): page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\u001b[22m\n\n at loginAsUser \u001b[90m(/home/senke/git/talas/veza/apps/web/\u001b[39me2e/utils/test-helpers.ts:174:18\u001b[90m)\u001b[39m\n at \u001b[90m/home/senke/git/talas/veza/apps/web/\u001b[39me2e/auth.spec.ts:297:5 {\n name: \u001b[32m'Error'\u001b[39m,\n [\u001b[32mSymbol(step)\u001b[39m]: {\n location: {\n file: \u001b[32m'/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts'\u001b[39m,\n line: \u001b[33m174\u001b[39m,\n column: \u001b[33m18\u001b[39m,\n function: \u001b[32m'loginAsUser'\u001b[39m\n },\n category: \u001b[32m'pw:api'\u001b[39m,\n title: \u001b[32m'Navigate to \"/login\"'\u001b[39m,\n apiName: \u001b[32m'page.goto'\u001b[39m,\n params: {\n url: \u001b[32m'http://localhost:5173/login'\u001b[39m,\n waitUntil: \u001b[32m'domcontentloaded'\u001b[39m,\n timeout: \u001b[33m30000\u001b[39m\n },\n group: \u001b[90mundefined\u001b[39m,\n stepId: \u001b[32m'pw:api@40'\u001b[39m,\n boxedStack: \u001b[90mundefined\u001b[39m,\n steps: [],\n attachmentIndices: [],\n info: TestStepInfoImpl {\n annotations: [],\n _testInfo: \u001b[36m[TestInfoImpl]\u001b[39m,\n _stepId: \u001b[32m'pw:api@40'\u001b[39m,\n _title: \u001b[32m'Navigate to \"/login\"'\u001b[39m,\n _parentStep: \u001b[90mundefined\u001b[39m,\n skip: \u001b[36m[Function (anonymous)]\u001b[39m\n },\n complete: \u001b[36m[Function: complete]\u001b[39m,\n endWallTime: \u001b[33m1768081940419\u001b[39m,\n error: {\n message: \u001b[32m'Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\\n'\u001b[39m +\n \u001b[32m'Call log:\\n'\u001b[39m +\n \u001b[32m'\\x1B[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\\x1B[22m\\n'\u001b[39m,\n stack: \u001b[32m'Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\\n'\u001b[39m +\n \u001b[32m'Call log:\\n'\u001b[39m +\n \u001b[32m'\\x1B[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\\x1B[22m\\n'\u001b[39m +\n \u001b[32m'\\n'\u001b[39m +\n \u001b[32m' at loginAsUser (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:174:18)\\n'\u001b[39m +\n \u001b[32m' at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:297:5'\u001b[39m,\n cause: \u001b[90mundefined\u001b[39m\n }\n }\n}\n"
}
],
"retry": 0,
"startTime": "2026-01-10T21:52:17.741Z",
"annotations": [],
"attachments": [
{
"name": "screenshot",
"contentType": "image/png",
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-Authentication-Flow-should-logout-successfully-msedge/test-failed-1.png"
},
{
"name": "video",
"contentType": "video/webm",
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-Authentication-Flow-should-logout-successfully-msedge/video.webm"
}
],
"errorLocation": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts",
"column": 18,
"line": 174
}
}
],
"status": "unexpected"
}
],
"id": "d748ac400d08b85935ef-3df7d64e9abaa55ead40",
"file": "auth.spec.ts",
"line": 293,
"column": 3
},
{
"title": "should redirect to login when accessing protected route without auth",
"ok": false,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "msedge",
"projectName": "msedge",
"results": [
{
"workerIndex": 18,
"parallelIndex": 0,
"status": "failed",
"duration": 230,
"error": {
"message": "Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"load\"\u001b[22m\n",
"stack": "Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"load\"\u001b[22m\n\n at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:377:16",
"location": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts",
"column": 16,
"line": 377
},
"snippet": "\u001b[0m \u001b[90m 375 |\u001b[39m\n \u001b[90m 376 |\u001b[39m \u001b[90m// S'assurer qu'il n'y a pas de token dans le localStorage\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 377 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`${TEST_CONFIG.FRONTEND_URL}/login`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 378 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mevaluate(() \u001b[33m=>\u001b[39m localStorage\u001b[33m.\u001b[39mclear())\u001b[33m;\u001b[39m\n \u001b[90m 379 |\u001b[39m\n \u001b[90m 380 |\u001b[39m \u001b[90m// Tenter d'accéder à une route protégée\u001b[39m\u001b[0m"
},
"errors": [
{
"location": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts",
"column": 16,
"line": 377
},
"message": "Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"load\"\u001b[22m\n\n\n\u001b[0m \u001b[90m 375 |\u001b[39m\n \u001b[90m 376 |\u001b[39m \u001b[90m// S'assurer qu'il n'y a pas de token dans le localStorage\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 377 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`${TEST_CONFIG.FRONTEND_URL}/login`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 378 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mevaluate(() \u001b[33m=>\u001b[39m localStorage\u001b[33m.\u001b[39mclear())\u001b[33m;\u001b[39m\n \u001b[90m 379 |\u001b[39m\n \u001b[90m 380 |\u001b[39m \u001b[90m// Tenter d'accéder à une route protégée\u001b[39m\u001b[0m\n\u001b[2m at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:377:16\u001b[22m"
}
],
"stdout": [
{
"text": "🧪 [AUTH TEST] Running: Route guard test\n"
},
{
"text": "🔴 [REQUEST FAILED] GET http://localhost:5173/login: net::ERR_CONNECTION_REFUSED\n"
},
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "🔴 [AUTH TEST] Network errors (1):\n"
},
{
"text": " - GET http://localhost:5173/login: 0\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-01-10T21:52:21.273Z",
"annotations": [],
"attachments": [
{
"name": "screenshot",
"contentType": "image/png",
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-Authentication-Flow-s-f8244-rotected-route-without-auth-msedge/test-failed-1.png"
},
{
"name": "video",
"contentType": "video/webm",
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-Authentication-Flow-s-f8244-rotected-route-without-auth-msedge/video.webm"
}
],
"errorLocation": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts",
"column": 16,
"line": 377
}
}
],
"status": "unexpected"
}
],
"id": "d748ac400d08b85935ef-c4b67bfd2f9f5e5089d5",
"file": "auth.spec.ts",
"line": 373,
"column": 3
},
{
"title": "should persist authentication after page refresh",
"ok": false,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "msedge",
"projectName": "msedge",
"results": [
{
"workerIndex": 19,
"parallelIndex": 0,
"status": "failed",
"duration": 12734,
"error": {
"message": "Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\u001b[22m\n",
"stack": "Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\u001b[22m\n\n at loginAsUser (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:174:18)\n at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:403:5",
"location": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts",
"column": 18,
"line": 174
},
"snippet": "\u001b[90m at \u001b[39mutils/test-helpers.ts:174\n\n\u001b[0m \u001b[90m 172 |\u001b[39m \u001b[36mwhile\u001b[39m (retries \u001b[33m>\u001b[39m \u001b[35m0\u001b[39m) {\n \u001b[90m 173 |\u001b[39m \u001b[36mtry\u001b[39m {\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 174 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`${TEST_CONFIG.FRONTEND_URL}/login`\u001b[39m\u001b[33m,\u001b[39m {\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 175 |\u001b[39m waitUntil\u001b[33m:\u001b[39m \u001b[32m'domcontentloaded'\u001b[39m\u001b[33m,\u001b[39m\n \u001b[90m 176 |\u001b[39m timeout\u001b[33m:\u001b[39m \u001b[33mTEST_CONFIG\u001b[39m\u001b[33m.\u001b[39m\u001b[33mDEFAULT_TIMEOUT\u001b[39m\u001b[33m,\u001b[39m\n \u001b[90m 177 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m"
},
"errors": [
{
"location": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts",
"column": 18,
"line": 174
},
"message": "Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\u001b[22m\n\n\n\u001b[90m at \u001b[39mutils/test-helpers.ts:174\n\n\u001b[0m \u001b[90m 172 |\u001b[39m \u001b[36mwhile\u001b[39m (retries \u001b[33m>\u001b[39m \u001b[35m0\u001b[39m) {\n \u001b[90m 173 |\u001b[39m \u001b[36mtry\u001b[39m {\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 174 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`${TEST_CONFIG.FRONTEND_URL}/login`\u001b[39m\u001b[33m,\u001b[39m {\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 175 |\u001b[39m waitUntil\u001b[33m:\u001b[39m \u001b[32m'domcontentloaded'\u001b[39m\u001b[33m,\u001b[39m\n \u001b[90m 176 |\u001b[39m timeout\u001b[33m:\u001b[39m \u001b[33mTEST_CONFIG\u001b[39m\u001b[33m.\u001b[39m\u001b[33mDEFAULT_TIMEOUT\u001b[39m\u001b[33m,\u001b[39m\n \u001b[90m 177 |\u001b[39m })\u001b[33m;\u001b[39m\u001b[0m\n\u001b[2m at loginAsUser (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:174:18)\u001b[22m\n\u001b[2m at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:403:5\u001b[22m"
}
],
"stdout": [
{
"text": "🧪 [AUTH TEST] Running: Auth persistence test\n"
},
{
"text": "🔐 [LOGIN] Attempting authentication as e2e@test.com...\n"
},
{
"text": "⏳ [LOGIN] Waiting 500ms before login (1768081952393ms since last login)...\n"
},
{
"text": "🔴 [REQUEST FAILED] GET http://localhost:5173/login: net::ERR_CONNECTION_REFUSED\n"
},
{
"text": "🔴 [REQUEST FAILED] GET http://localhost:5173/login: net::ERR_CONNECTION_REFUSED\n"
},
{
"text": "🔴 [REQUEST FAILED] GET http://localhost:5173/login: net::ERR_CONNECTION_REFUSED\n"
},
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "🔴 [AUTH TEST] Network errors (3):\n"
},
{
"text": " - GET http://localhost:5173/login: 0\n"
},
{
"text": " - GET http://localhost:5173/login: 0\n"
},
{
"text": " - GET http://localhost:5173/login: 0\n"
}
],
"stderr": [
{
"text": "⚠️ [LOGIN] Navigation failed (retries left: 2): page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\u001b[22m\n\n at loginAsUser \u001b[90m(/home/senke/git/talas/veza/apps/web/\u001b[39me2e/utils/test-helpers.ts:174:18\u001b[90m)\u001b[39m\n at \u001b[90m/home/senke/git/talas/veza/apps/web/\u001b[39me2e/auth.spec.ts:403:5 {\n name: \u001b[32m'Error'\u001b[39m,\n [\u001b[32mSymbol(step)\u001b[39m]: {\n location: {\n file: \u001b[32m'/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts'\u001b[39m,\n line: \u001b[33m174\u001b[39m,\n column: \u001b[33m18\u001b[39m,\n function: \u001b[32m'loginAsUser'\u001b[39m\n },\n category: \u001b[32m'pw:api'\u001b[39m,\n title: \u001b[32m'Navigate to \"/login\"'\u001b[39m,\n apiName: \u001b[32m'page.goto'\u001b[39m,\n params: {\n url: \u001b[32m'http://localhost:5173/login'\u001b[39m,\n waitUntil: \u001b[32m'domcontentloaded'\u001b[39m,\n timeout: \u001b[33m30000\u001b[39m\n },\n group: \u001b[90mundefined\u001b[39m,\n stepId: \u001b[32m'pw:api@37'\u001b[39m,\n boxedStack: \u001b[90mundefined\u001b[39m,\n steps: [],\n attachmentIndices: [],\n info: TestStepInfoImpl {\n annotations: [],\n _testInfo: \u001b[36m[TestInfoImpl]\u001b[39m,\n _stepId: \u001b[32m'pw:api@37'\u001b[39m,\n _title: \u001b[32m'Navigate to \"/login\"'\u001b[39m,\n _parentStep: \u001b[90mundefined\u001b[39m,\n skip: \u001b[36m[Function (anonymous)]\u001b[39m\n },\n complete: \u001b[36m[Function: complete]\u001b[39m,\n endWallTime: \u001b[33m1768081952903\u001b[39m,\n error: {\n message: \u001b[32m'Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\\n'\u001b[39m +\n \u001b[32m'Call log:\\n'\u001b[39m +\n \u001b[32m'\\x1B[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\\x1B[22m\\n'\u001b[39m,\n stack: \u001b[32m'Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\\n'\u001b[39m +\n \u001b[32m'Call log:\\n'\u001b[39m +\n \u001b[32m'\\x1B[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\\x1B[22m\\n'\u001b[39m +\n \u001b[32m'\\n'\u001b[39m +\n \u001b[32m' at loginAsUser (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:174:18)\\n'\u001b[39m +\n \u001b[32m' at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:403:5'\u001b[39m,\n cause: \u001b[90mundefined\u001b[39m\n }\n }\n}\n"
},
{
"text": "⚠️ [LOGIN] Navigation failed (retries left: 1): page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\u001b[22m\n\n at loginAsUser \u001b[90m(/home/senke/git/talas/veza/apps/web/\u001b[39me2e/utils/test-helpers.ts:174:18\u001b[90m)\u001b[39m\n at \u001b[90m/home/senke/git/talas/veza/apps/web/\u001b[39me2e/auth.spec.ts:403:5 {\n name: \u001b[32m'Error'\u001b[39m,\n [\u001b[32mSymbol(step)\u001b[39m]: {\n location: {\n file: \u001b[32m'/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts'\u001b[39m,\n line: \u001b[33m174\u001b[39m,\n column: \u001b[33m18\u001b[39m,\n function: \u001b[32m'loginAsUser'\u001b[39m\n },\n category: \u001b[32m'pw:api'\u001b[39m,\n title: \u001b[32m'Navigate to \"/login\"'\u001b[39m,\n apiName: \u001b[32m'page.goto'\u001b[39m,\n params: {\n url: \u001b[32m'http://localhost:5173/login'\u001b[39m,\n waitUntil: \u001b[32m'domcontentloaded'\u001b[39m,\n timeout: \u001b[33m30000\u001b[39m\n },\n group: \u001b[90mundefined\u001b[39m,\n stepId: \u001b[32m'pw:api@39'\u001b[39m,\n boxedStack: \u001b[90mundefined\u001b[39m,\n steps: [],\n attachmentIndices: [],\n info: TestStepInfoImpl {\n annotations: [],\n _testInfo: \u001b[36m[TestInfoImpl]\u001b[39m,\n _stepId: \u001b[32m'pw:api@39'\u001b[39m,\n _title: \u001b[32m'Navigate to \"/login\"'\u001b[39m,\n _parentStep: \u001b[90mundefined\u001b[39m,\n skip: \u001b[36m[Function (anonymous)]\u001b[39m\n },\n complete: \u001b[36m[Function: complete]\u001b[39m,\n endWallTime: \u001b[33m1768081953920\u001b[39m,\n error: {\n message: \u001b[32m'Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\\n'\u001b[39m +\n \u001b[32m'Call log:\\n'\u001b[39m +\n \u001b[32m'\\x1B[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\\x1B[22m\\n'\u001b[39m,\n stack: \u001b[32m'Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\\n'\u001b[39m +\n \u001b[32m'Call log:\\n'\u001b[39m +\n \u001b[32m'\\x1B[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\\x1B[22m\\n'\u001b[39m +\n \u001b[32m'\\n'\u001b[39m +\n \u001b[32m' at loginAsUser (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:174:18)\\n'\u001b[39m +\n \u001b[32m' at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:403:5'\u001b[39m,\n cause: \u001b[90mundefined\u001b[39m\n }\n }\n}\n"
},
{
"text": "⚠️ [LOGIN] Navigation failed (retries left: 0): page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\u001b[22m\n\n at loginAsUser \u001b[90m(/home/senke/git/talas/veza/apps/web/\u001b[39me2e/utils/test-helpers.ts:174:18\u001b[90m)\u001b[39m\n at \u001b[90m/home/senke/git/talas/veza/apps/web/\u001b[39me2e/auth.spec.ts:403:5 {\n name: \u001b[32m'Error'\u001b[39m,\n [\u001b[32mSymbol(step)\u001b[39m]: {\n location: {\n file: \u001b[32m'/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts'\u001b[39m,\n line: \u001b[33m174\u001b[39m,\n column: \u001b[33m18\u001b[39m,\n function: \u001b[32m'loginAsUser'\u001b[39m\n },\n category: \u001b[32m'pw:api'\u001b[39m,\n title: \u001b[32m'Navigate to \"/login\"'\u001b[39m,\n apiName: \u001b[32m'page.goto'\u001b[39m,\n params: {\n url: \u001b[32m'http://localhost:5173/login'\u001b[39m,\n waitUntil: \u001b[32m'domcontentloaded'\u001b[39m,\n timeout: \u001b[33m30000\u001b[39m\n },\n group: \u001b[90mundefined\u001b[39m,\n stepId: \u001b[32m'pw:api@41'\u001b[39m,\n boxedStack: \u001b[90mundefined\u001b[39m,\n steps: [],\n attachmentIndices: [],\n info: TestStepInfoImpl {\n annotations: [],\n _testInfo: \u001b[36m[TestInfoImpl]\u001b[39m,\n _stepId: \u001b[32m'pw:api@41'\u001b[39m,\n _title: \u001b[32m'Navigate to \"/login\"'\u001b[39m,\n _parentStep: \u001b[90mundefined\u001b[39m,\n skip: \u001b[36m[Function (anonymous)]\u001b[39m\n },\n complete: \u001b[36m[Function: complete]\u001b[39m,\n endWallTime: \u001b[33m1768081954928\u001b[39m,\n error: {\n message: \u001b[32m'Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\\n'\u001b[39m +\n \u001b[32m'Call log:\\n'\u001b[39m +\n \u001b[32m'\\x1B[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\\x1B[22m\\n'\u001b[39m,\n stack: \u001b[32m'Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\\n'\u001b[39m +\n \u001b[32m'Call log:\\n'\u001b[39m +\n \u001b[32m'\\x1B[2m - navigating to \"http://localhost:5173/login\", waiting until \"domcontentloaded\"\\x1B[22m\\n'\u001b[39m +\n \u001b[32m'\\n'\u001b[39m +\n \u001b[32m' at loginAsUser (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:174:18)\\n'\u001b[39m +\n \u001b[32m' at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:403:5'\u001b[39m,\n cause: \u001b[90mundefined\u001b[39m\n }\n }\n}\n"
}
],
"retry": 0,
"startTime": "2026-01-10T21:52:22.258Z",
"annotations": [],
"attachments": [
{
"name": "screenshot",
"contentType": "image/png",
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-Authentication-Flow-s-12d3c-tication-after-page-refresh-msedge/test-failed-1.png"
},
{
"name": "video",
"contentType": "video/webm",
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-Authentication-Flow-s-12d3c-tication-after-page-refresh-msedge/video.webm"
}
],
"errorLocation": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts",
"column": 18,
"line": 174
}
}
],
"status": "unexpected"
}
],
"id": "d748ac400d08b85935ef-28ee1ce0e854954aad61",
"file": "auth.spec.ts",
"line": 395,
"column": 3
},
{
"title": "should validate login form fields",
"ok": false,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "msedge",
"projectName": "msedge",
"results": [
{
"workerIndex": 20,
"parallelIndex": 0,
"status": "failed",
"duration": 190,
"error": {
"message": "Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"load\"\u001b[22m\n",
"stack": "Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"load\"\u001b[22m\n\n at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:455:16",
"location": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts",
"column": 16,
"line": 455
},
"snippet": "\u001b[0m \u001b[90m 453 |\u001b[39m console\u001b[33m.\u001b[39mlog(\u001b[32m'🧪 [AUTH TEST] Running: Login form validation'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 454 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 455 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`${TEST_CONFIG.FRONTEND_URL}/login`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 456 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForLoadState(\u001b[32m'domcontentloaded'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 457 |\u001b[39m\n \u001b[90m 458 |\u001b[39m \u001b[90m// Wait for form to be ready\u001b[39m\u001b[0m"
},
"errors": [
{
"location": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts",
"column": 16,
"line": 455
},
"message": "Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/login\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/login\", waiting until \"load\"\u001b[22m\n\n\n\u001b[0m \u001b[90m 453 |\u001b[39m console\u001b[33m.\u001b[39mlog(\u001b[32m'🧪 [AUTH TEST] Running: Login form validation'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 454 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 455 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`${TEST_CONFIG.FRONTEND_URL}/login`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 456 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForLoadState(\u001b[32m'domcontentloaded'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 457 |\u001b[39m\n \u001b[90m 458 |\u001b[39m \u001b[90m// Wait for form to be ready\u001b[39m\u001b[0m\n\u001b[2m at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:455:16\u001b[22m"
}
],
"stdout": [
{
"text": "🧪 [AUTH TEST] Running: Login form validation\n"
},
{
"text": "🔴 [REQUEST FAILED] GET http://localhost:5173/login: net::ERR_CONNECTION_REFUSED\n"
},
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "🔴 [AUTH TEST] Network errors (1):\n"
},
{
"text": " - GET http://localhost:5173/login: 0\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-01-10T21:52:35.693Z",
"annotations": [],
"attachments": [
{
"name": "screenshot",
"contentType": "image/png",
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-Authentication-Flow-should-validate-login-form-fields-msedge/test-failed-1.png"
},
{
"name": "video",
"contentType": "video/webm",
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-Authentication-Flow-should-validate-login-form-fields-msedge/video.webm"
}
],
"errorLocation": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts",
"column": 16,
"line": 455
}
}
],
"status": "unexpected"
}
],
"id": "d748ac400d08b85935ef-3aa083fdfc83657d8319",
"file": "auth.spec.ts",
"line": 452,
"column": 3
},
{
"title": "should show error when passwords do not match during registration",
"ok": false,
"tags": [],
"tests": [
{
"timeout": 60000,
"annotations": [],
"expectedStatus": "passed",
"projectId": "msedge",
"projectName": "msedge",
"results": [
{
"workerIndex": 21,
"parallelIndex": 0,
"status": "failed",
"duration": 222,
"error": {
"message": "Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/register\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/register\", waiting until \"load\"\u001b[22m\n",
"stack": "Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/register\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/register\", waiting until \"load\"\u001b[22m\n\n at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:512:16",
"location": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts",
"column": 16,
"line": 512
},
"snippet": "\u001b[0m \u001b[90m 510 |\u001b[39m console\u001b[33m.\u001b[39mlog(\u001b[32m'🧪 [AUTH TEST] Running: Password mismatch validation'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 511 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 512 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`${TEST_CONFIG.FRONTEND_URL}/register`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 513 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForLoadState(\u001b[32m'domcontentloaded'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 514 |\u001b[39m\n \u001b[90m 515 |\u001b[39m \u001b[90m// Attendre que la page soit complètement chargée\u001b[39m\u001b[0m"
},
"errors": [
{
"location": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts",
"column": 16,
"line": 512
},
"message": "Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/register\nCall log:\n\u001b[2m - navigating to \"http://localhost:5173/register\", waiting until \"load\"\u001b[22m\n\n\n\u001b[0m \u001b[90m 510 |\u001b[39m console\u001b[33m.\u001b[39mlog(\u001b[32m'🧪 [AUTH TEST] Running: Password mismatch validation'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 511 |\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 512 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mgoto(\u001b[32m`${TEST_CONFIG.FRONTEND_URL}/register`\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 513 |\u001b[39m \u001b[36mawait\u001b[39m page\u001b[33m.\u001b[39mwaitForLoadState(\u001b[32m'domcontentloaded'\u001b[39m)\u001b[33m;\u001b[39m\n \u001b[90m 514 |\u001b[39m\n \u001b[90m 515 |\u001b[39m \u001b[90m// Attendre que la page soit complètement chargée\u001b[39m\u001b[0m\n\u001b[2m at /home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts:512:16\u001b[22m"
}
],
"stdout": [
{
"text": "🧪 [AUTH TEST] Running: Password mismatch validation\n"
},
{
"text": "🔴 [REQUEST FAILED] GET http://localhost:5173/register: net::ERR_CONNECTION_REFUSED\n"
},
{
"text": "\n📊 [AUTH TEST] === Final Verifications ===\n"
},
{
"text": "✅ [AUTH TEST] No console errors\n"
},
{
"text": "🔴 [AUTH TEST] Network errors (1):\n"
},
{
"text": " - GET http://localhost:5173/register: 0\n"
}
],
"stderr": [],
"retry": 0,
"startTime": "2026-01-10T21:52:36.604Z",
"annotations": [],
"attachments": [
{
"name": "screenshot",
"contentType": "image/png",
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-Authentication-Flow-s-216c1-t-match-during-registration-msedge/test-failed-1.png"
},
{
"name": "video",
"contentType": "video/webm",
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-Authentication-Flow-s-216c1-t-match-during-registration-msedge/video.webm"
}
],
"errorLocation": {
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth.spec.ts",
"column": 16,
"line": 512
}
}
],
"status": "unexpected"
}
],
"id": "d748ac400d08b85935ef-f68285534433ec8ebacd",
"file": "auth.spec.ts",
"line": 509,
"column": 3
}
]
}
]
}
],
"errors": [],
"stats": {
"startTime": "2026-01-10T21:50:19.099Z",
"duration": 137843.98500000002,
"expected": 15,
"skipped": 0,
"unexpected": 21,
"flaky": 0
}
}