{ "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": {}, "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": {}, "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": {}, "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": {}, "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": {}, "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:3000", "reuseExistingServer": true, "timeout": 120000 } }, "suites": [], "errors": [ { "message": "TimeoutError: page.waitForURL: Timeout 20000ms exceeded.\n=========================== logs ===========================\nwaiting for navigation until \"load\"\n============================================================", "stack": "TimeoutError: page.waitForURL: Timeout 20000ms exceeded.\n=========================== logs ===========================\nwaiting for navigation until \"load\"\n============================================================\n at globalSetup (/home/senke/git/talas/veza/apps/web/e2e/global-setup.ts:57:16)", "location": { "file": "/home/senke/git/talas/veza/apps/web/e2e/global-setup.ts", "column": 16, "line": 57 }, "snippet": " at global-setup.ts:57\n\n 55 | // Wait for navigation after login (dashboard or home)\n 56 | console.log('🔧 [GLOBAL SETUP] Waiting for login to complete...');\n> 57 | await page.waitForURL(\n | ^\n 58 | (url) => url.pathname === '/dashboard' || url.pathname === '/',\n 59 | { timeout: 20000 }\n 60 | );" } ], "stats": { "startTime": "2025-12-26T12:28:08.199Z", "duration": 21030.791, "expected": 0, "skipped": 0, "unexpected": 0, "flaky": 0 } }