{"title":"Rekrutia QA Console","currentRun":null,"history":[{"id":"all-2026-06-10T03-26-37-021Z","target":"all","status":"failed","startedAt":"2026-06-10T03:26:37.021Z","finishedAt":"2026-06-10T03:36:48.740Z","exitCode":1,"logPath":"/app/artifacts/console-runs/all-2026-06-10T03-26-37-021Z/output.log","summaryPath":"/app/artifacts/console-runs/all-2026-06-10T03-26-37-021Z/summary.md","jsonPath":"/app/artifacts/console-runs/all-2026-06-10T03-26-37-021Z/results.json","output":"\n> rekrutia-qa-playwright@0.1.0 qa:all\n> playwright test\n\n◇ injected env (0) from .env // tip: ⌘ suppress logs { quiet: true }\n\nRunning 48 tests using 2 workers\n\n◇ injected env (0) from .env // tip: ⌘ multiple files { path: ['.env.local', '.env'] }\n◇ injected env (0) from .env // tip: ⌘ custom filepath { path: '/custom/path/.env' }\n  ✓   2 [api-no-auth] › tests/api/service-contracts.spec.ts:33:7 › @regression API contracts › cv-analysis menerima format auth header jika token QA diatur (92ms)\n  ✓   1 [api-no-auth] › tests/api/service-contracts.spec.ts:18:7 › @regression API contracts › cv-analysis menolak request tanpa token (97ms)\n  ✓   3 [api-no-auth] › tests/api/service-contracts.spec.ts:54:7 › @regression API contracts › cv-clustering preflight menolak atau merespons terstruktur (36ms)\n  ✓   5 [api-no-auth] › tests/api/service-health.spec.ts:23:7 › @smoke @prod-safe service health checks › service cv-analysis merespons sehat (21ms)\n  ✓   6 [api-no-auth] › tests/api/service-health.spec.ts:29:7 › @smoke @prod-safe service health checks › service cv-clustering merespons sehat (15ms)\n  ✓   4 [api-no-auth] › tests/api/service-health.spec.ts:17:7 › @smoke @prod-safe service health checks › app utama merespons sehat (498ms)\n  ✓   8 [api-no-auth] › tests/smoke/public-health.spec.ts:12:7 › @smoke @prod-safe public health checks › health endpoint merespons sehat (123ms)\n  ✓   7 [api-no-auth] › tests/smoke/public-health.spec.ts:6:7 › @smoke @prod-safe public health checks › base url merespons (546ms)\n◇ injected env (0) from .env // tip: ◈ encrypted .env [www.dotenvx.com]\n◇ injected env (0) from .env // tip: ⌘ suppress logs { quiet: true }\n  ✓  10 [chromium-hrd] › tests/functional/internal-clustering-flow.spec.ts:14:7 › @regression internal clustering flow › detail lowongan dapat dibuka dan kontrol clustering dapat disentuh (7.9s)\n  ✘  11 [chromium-hrd] › tests/functional/internal-clustering-flow.spec.ts:34:7 › @regression internal clustering flow › halaman kandidat internal termuat setelah navigasi dari shell (13.9s)\n◇ injected env (0) from .env // tip: ◈ encrypted .env [www.dotenvx.com]\n  ✘  12 [chromium-hrd] › tests/functional/internal-clustering-flow.spec.ts:34:7 › @regression internal clustering flow › halaman kandidat internal termuat setelah navigasi dari shell (retry #1) (14.2s)\n◇ injected env (0) from .env // tip: ⌘ custom filepath { path: '/custom/path/.env' }\n  ✓  13 [chromium-hrd] › tests/functional/public-candidate-flow.spec.ts:17:7 › @regression public candidate flow › listing lowongan publik termuat (3.1s)\n  -  14 [chromium-hrd] › tests/functional/public-candidate-flow.spec.ts:24:7 › @regression public candidate flow › halaman apply QA bisa dibuka bila URL eksplisit diatur\n  -  15 [chromium-hrd] › tests/functional/public-candidate-flow.spec.ts:33:7 › @regression public candidate flow › halaman tracking QA bisa dibuka bila URL eksplisit diatur\n  ✓  16 [chromium-hrd] › tests/smoke/internal-shell.spec.ts:6:7 › @smoke @prod-safe internal shell › dashboard internal termuat dan nav utama terlihat (2.6s)\n  ✓  17 [chromium-hrd] › tests/smoke/internal-shell.spec.ts:13:7 › @smoke @prod-safe internal shell › navigasi sidebar ke lowongan dan kandidat tetap responsif (4.0s)\n  -  18 [chromium-hrd] › tests/smoke/mobile-shell.spec.ts:6:7 › @smoke @regression mobile shell › sidebar mobile bisa dibuka dan navigasi utama tetap terlihat\n  -  19 [chromium-hrd] › tests/smoke/operations-monitoring.spec.ts:6:7 › @smoke @regression operations and monitoring › ops center terbuka dan status service terlihat\n  -  20 [chromium-hrd] › tests/smoke/operations-monitoring.spec.ts:15:7 › @smoke @regression operations and monitoring › tidak ada modal yang terkunci di halaman operations\n  ✓  21 [chromium-hrd] › tests/smoke/vacancies-ui.spec.ts:13:7 › @smoke @regression vacancy UI › halaman lowongan bisa dibuka dari shell internal (5.5s)\n  ✓  22 [chromium-hrd] › tests/smoke/vacancies-ui.spec.ts:20:7 › @smoke @regression vacancy UI › detail lowongan dan kontrol clustering tidak langsung macet (4.7s)\n  -  23 [chromium-hrd] › tests/smoke/vacancies-ui.spec.ts:29:7 › @smoke @regression vacancy UI › shared vacancy page bisa diuji jika URL sudah dikonfigurasi\n◇ injected env (0) from .env // tip: ⌘ suppress logs { quiet: true }\n  ✓  24 [chromium-superadmin] › tests/functional/internal-clustering-flow.spec.ts:14:7 › @regression internal clustering flow › detail lowongan dapat dibuka dan kontrol clustering dapat disentuh (5.3s)\n  ✘  25 [chromium-superadmin] › tests/functional/internal-clustering-flow.spec.ts:34:7 › @regression internal clustering flow › halaman kandidat internal termuat setelah navigasi dari shell (13.8s)\n◇ injected env (0) from .env // tip: ⌘ override existing { override: true }\n  ✘  26 [chromium-superadmin] › tests/functional/internal-clustering-flow.spec.ts:34:7 › @regression internal clustering flow › halaman kandidat internal termuat setelah navigasi dari shell (retry #1) (14.2s)\n◇ injected env (0) from .env // tip: ◈ secrets for agents [www.dotenvx.com]\n  ✓  27 [chromium-superadmin] › tests/functional/public-candidate-flow.spec.ts:17:7 › @regression public candidate flow › listing lowongan publik termuat (2.8s)\n  -  28 [chromium-superadmin] › tests/functional/public-candidate-flow.spec.ts:24:7 › @regression public candidate flow › halaman apply QA bisa dibuka bila URL eksplisit diatur\n  -  29 [chromium-superadmin] › tests/functional/public-candidate-flow.spec.ts:33:7 › @regression public candidate flow › halaman tracking QA bisa dibuka bila URL eksplisit diatur\n  ✓  30 [chromium-superadmin] › tests/smoke/internal-shell.spec.ts:6:7 › @smoke @prod-safe internal shell › dashboard internal termuat dan nav utama terlihat (2.5s)\n  ✓  31 [chromium-superadmin] › tests/smoke/internal-shell.spec.ts:13:7 › @smoke @prod-safe internal shell › navigasi sidebar ke lowongan dan kandidat tetap responsif (3.7s)\n  -  32 [chromium-superadmin] › tests/smoke/mobile-shell.spec.ts:6:7 › @smoke @regression mobile shell › sidebar mobile bisa dibuka dan navigasi utama tetap terlihat\n  ✓  33 [chromium-superadmin] › tests/smoke/operations-monitoring.spec.ts:6:7 › @smoke @regression operations and monitoring › ops center terbuka dan status service terlihat (3.5s)\n  ✓  34 [chromium-superadmin] › tests/smoke/operations-monitoring.spec.ts:15:7 › @smoke @regression operations and monitoring › tidak ada modal yang terkunci di halaman operations (2.5s)\n  ✓  35 [chromium-superadmin] › tests/smoke/vacancies-ui.spec.ts:13:7 › @smoke @regression vacancy UI › halaman lowongan bisa dibuka dari shell internal (13.7s)\n  ✓  36 [chromium-superadmin] › tests/smoke/vacancies-ui.spec.ts:20:7 › @smoke @regression vacancy UI › detail lowongan dan kontrol clustering tidak langsung macet (5.5s)\n  -  37 [chromium-superadmin] › tests/smoke/vacancies-ui.spec.ts:29:7 › @smoke @regression vacancy UI › shared vacancy page bisa diuji jika URL sudah dikonfigurasi\n◇ injected env (0) from .env // tip: ⌘ custom filepath { path: '/custom/path/.env' }\n  ✓  38 [mobile-chromium-hrd] › tests/functional/internal-clustering-flow.spec.ts:14:7 › @regression internal clustering flow › detail lowongan dapat dibuka dan kontrol clustering dapat disentuh (11.9s)\n  ✘  39 [mobile-chromium-hrd] › tests/functional/internal-clustering-flow.spec.ts:34:7 › @regression internal clustering flow › halaman kandidat internal termuat setelah navigasi dari shell (13.8s)\n◇ injected env (0) from .env // tip: ⌘ custom filepath { path: '/custom/path/.env' }\n  ✘  40 [mobile-chromium-hrd] › tests/functional/internal-clustering-flow.spec.ts:34:7 › @regression internal clustering flow › halaman kandidat internal termuat setelah navigasi dari shell (retry #1) (13.4s)\n◇ injected env (0) from .env // tip: ⌘ suppress logs { quiet: true }\n  ✓  41 [mobile-chromium-hrd] › tests/functional/public-candidate-flow.spec.ts:17:7 › @regression public candidate flow › listing lowongan publik termuat (4.1s)\n  -  42 [mobile-chromium-hrd] › tests/functional/public-candidate-flow.spec.ts:24:7 › @regression public candidate flow › halaman apply QA bisa dibuka bila URL eksplisit diatur\n  -  43 [mobile-chromium-hrd] › tests/functional/public-candidate-flow.spec.ts:33:7 › @regression public candidate flow › halaman tracking QA bisa dibuka bila URL eksplisit diatur\n  ✓  44 [mobile-chromium-hrd] › tests/smoke/internal-shell.spec.ts:6:7 › @smoke @prod-safe internal shell › dashboard internal termuat dan nav utama terlihat (3.1s)\n  ✓  45 [mobile-chromium-hrd] › tests/smoke/internal-shell.spec.ts:13:7 › @smoke @prod-safe internal shell › navigasi sidebar ke lowongan dan kandidat tetap responsif (3.9s)\n  ✓  46 [mobile-chromium-hrd] › tests/smoke/mobile-shell.spec.ts:6:7 › @smoke @regression mobile shell › sidebar mobile bisa dibuka dan navigasi utama tetap terlihat (1.9s)\n  -  47 [mobile-chromium-hrd] › tests/smoke/operations-monitoring.spec.ts:6:7 › @smoke @regression operations and monitoring › ops center terbuka dan status service terlihat\n  -  48 [mobile-chromium-hrd] › tests/smoke/operations-monitoring.spec.ts:15:7 › @smoke @regression operations and monitoring › tidak ada modal yang terkunci di halaman operations\n  ✓  49 [mobile-chromium-hrd] › tests/smoke/vacancies-ui.spec.ts:13:7 › @smoke @regression vacancy UI › halaman lowongan bisa dibuka dari shell internal (1.9s)\n  ✓  50 [mobile-chromium-hrd] › tests/smoke/vacancies-ui.spec.ts:20:7 › @smoke @regression vacancy UI › detail lowongan dan kontrol clustering tidak langsung macet (11.6s)\n  -  51 [mobile-chromium-hrd] › tests/smoke/vacancies-ui.spec.ts:29:7 › @smoke @regression vacancy UI › shared vacancy page bisa diuji jika URL sudah dikonfigurasi\n  ✘   9 [auth-bootstrap] › tests/setup/auth-bootstrap.spec.ts:5:5 › bootstrap auth state via manual Google login (5.0m)\n◇ injected env (0) from .env // tip: ⌘ custom filepath { path: '/custom/path/.env' }\n  ✘  52 [auth-bootstrap] › tests/setup/auth-bootstrap.spec.ts:5:5 › bootstrap auth state via manual Google login (retry #1) (5.0m)\n\n\n  1) [auth-bootstrap] › tests/setup/auth-bootstrap.spec.ts:5:5 › bootstrap auth state via manual Google login \n\n    \u001b[31mTest timeout of 300000ms exceeded.\u001b[39m\n\n    Error: page.waitForURL: Test timeout of 300000ms exceeded.\n    =========================== logs ===========================\n    waiting for navigation until \"load\"\n      navigated to \"https://accounts.google.com/v3/signin/identifier?opparams=%253F&dsh=S1580164762%3A1781062004208813&client_id=826813778380-rph5n23u7lquv42uqtdmmilt0omd35a7.apps.googleusercontent.com&o2v=1&redirect_uri=https%3A%2F%2Frekrutia.digital%2Fapi%2Fhrd%2Fauth%2Fgoogle%2Fcallback&response_type=code&scope=openid+profile+email&service=lso&state=uLHi3LUfR3TBnezLfOLpHxNfHGWJNcScNlIS2vcG&flowName=GeneralOAuthFlow&continue=https%3A%2F%2Faccounts.google.com%2Fsignin%2Foauth%2Fconsent%3Fauthuser%3Dunknown%26part%3DAJi8hANZhNZy61_UDljV0csXckw1iRW13-LgxaaqNKL0PQId7Ur5kOI4GfXrlBfJkKTeb59AtK4XolxOIwCJ4kN4gsGRFP7q6uwdLGggERPNPp1pDCvsjI-4I2RDXI274g4QlUsQPBzz-YslYNZtWUUt_VxRs8y_M0wKh2YsybyjmTZ81P-CjJiXEYTCPlP0yuH3eBmg7oPz7pjqoSTfUa9b5-nAQn4shJie7-M9RO4FGyuWGK00JvHSPU9J6cgb3vlS6Ok5910BEcvJW3U4QtPlOdJFiy_uvEbMOURg6coA0sg6iZ56kC5EUWTeLMqqSD5XooWZIvlvZ74ovMJBZCBe_u_KD6-mqHqHE_PLRANIpqWA2-YoqYTfGc_mkSQnWVdpXSEdG2R_LzW-FfRPXdY3ekJVGajHZ7H6la_V2MLlnxzZcUZfYE8RtcALcmu8MYqgyOx80UtVVjK1f6iQGXhTso5iluE5rg%26flowName%3DGeneralOAuthFlow%26as%3DS1580164762%253A1781062004208813%26client_id%3D826813778380-rph5n23u7lquv42uqtdmmilt0omd35a7.apps.googleusercontent.com%26requestPath%3D%252Fsignin%252Foauth%252Fconsent%23&app_domain=https%3A%2F%2Frekrutia.digital&rart=ANgoxccCkLfWTCEe7XiB9YXyIOM43uzu0qdsd_uo7z4DCjfgEAK1xxcFZ76hcBwKNwN754rpSS61Si9KIOGJXIAGY09evouI4ZKnOM2_4EtKO7WHpVKfUpo\"\n    ============================================================\n\n      10 |   await openInternalLogin(page);\n      11 |   await page.getByRole('link', { name: /masuk dengan google/i }).click();\n    > 12 |   await page.waitForURL(/\\/internal\\/dashboard/, { timeout: 5 * 60_000 });\n         |              ^\n      13 |   await context.storageState({ path: storageStatePath });\n      14 |\n      15 |   test.info().annotations.push({\n        at /app/tests/setup/auth-bootstrap.spec.ts:12:14\n\n    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────\n    artifacts/test-results/setup-auth-bootstrap-boots-8a7ae-ate-via-manual-Google-login-auth-bootstrap/test-failed-1.png\n    ────────────────────────────────────────────────────────────────────────────────────────────────\n\n    attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────\n    artifacts/test-results/setup-auth-bootstrap-boots-8a7ae-ate-via-manual-Google-login-auth-bootstrap/video.webm\n    ────────────────────────────────────────────────────────────────────────────────────────────────\n\n    Error Context: artifacts/test-results/setup-auth-bootstrap-boots-8a7ae-ate-via-manual-Google-login-auth-bootstrap/error-context.md\n\n    attachment #4: trace (application/zip) ─────────────────────────────────────────────────────────\n    artifacts/test-results/setup-auth-bootstrap-boots-8a7ae-ate-via-manual-Google-login-auth-bootstrap/trace.zip\n    Usage:\n\n        npx playwright show-trace artifacts/test-results/setup-auth-bootstrap-boots-8a7ae-ate-via-manual-Google-login-auth-bootstrap/trace.zip\n\n    ────────────────────────────────────────────────────────────────────────────────────────────────\n\n    Retry #1 ───────────────────────────────────────────────────────────────────────────────────────\n\n    \u001b[31mTest timeout of 300000ms exceeded.\u001b[39m\n\n    Error: page.waitForURL: Test timeout of 300000ms exceeded.\n    =========================== logs ===========================\n    waiting for navigation until \"load\"\n      navigated to \"https://accounts.google.com/v3/signin/identifier?opparams=%253F&dsh=S-1575016877%3A1781062307007097&client_id=826813778380-rph5n23u7lquv42uqtdmmilt0omd35a7.apps.googleusercontent.com&o2v=1&redirect_uri=https%3A%2F%2Frekrutia.digital%2Fapi%2Fhrd%2Fauth%2Fgoogle%2Fcallback&response_type=code&scope=openid+profile+email&service=lso&state=scBj72kzPW0R2j4Wep0J8DhlTQkx4scastgqerXY&flowName=GeneralOAuthFlow&continue=https%3A%2F%2Faccounts.google.com%2Fsignin%2Foauth%2Fconsent%3Fauthuser%3Dunknown%26part%3DAJi8hAMEX96hC-fqoZBJDkDOHOfR2NKGiW-OzNYCnwmUYS6qNKnRSUPSNY8GIz9TsbyClIIvFUyGqJ0-bUDgjAyEKHX0bUJZR8atgASUTuo0wXw1_z6oAGfNVpoPUpKt8fSITRmSjhvMmP-1yBHG8KKh44c8thyDd9GBOeMWQ2nkz68uZoKnxiG9px6bX_wn__EWYDTyoDtyfJY7R6voOvAcreNnzJ6J52jGljSDrocSbi9_ha6ymRaCdxCCEogEeXoUB5VuERVmbKh-_Vfq9RFXKvxNE6HZ6FaTFFsA5P2shizQzxMaFcmlnNy-xWCJUMB41ZR504dWpv2seh8ch_YAAAFTmb4UQBeTJdeLDH7Uf17sjW6F77JkW6PCD0cNVeG_ObPtqfPqpCVK8-SFbKj6DrWvcveIUg-DcNCYGaumTBpKWlAE01n8CainY_7Uj7Zzyojn8XVVMKqSxQLebMTCX4E5AHB4sQ%26flowName%3DGeneralOAuthFlow%26as%3DS-1575016877%253A1781062307007097%26client_id%3D826813778380-rph5n23u7lquv42uqtdmmilt0omd35a7.apps.googleusercontent.com%26requestPath%3D%252Fsignin%252Foauth%252Fconsent%23&app_domain=https%3A%2F%2Frekrutia.digital&rart=ANgoxcfEyLkn-TrBpNb3-wAMy4FWRLKIe00nlHwobuNRJw6sLYoFO045vKxIz24H7Uw8-y6rnfTqChfJBWYDA-M_ieTpqIsZPBCnzNGbkkaHLuy6N0VJoq0\"\n    ============================================================\n\n      10 |   await openInternalLogin(page);\n      11 |   await page.getByRole('link', { name: /masuk dengan google/i }).click();\n    > 12 |   await page.waitForURL(/\\/internal\\/dashboard/, { timeout: 5 * 60_000 });\n         |              ^\n      13 |   await context.storageState({ path: storageStatePath });\n      14 |\n      15 |   test.info().annotations.push({\n        at /app/tests/setup/auth-bootstrap.spec.ts:12:14\n\n    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────\n    artifacts/test-results/setup-auth-bootstrap-boots-8a7ae-ate-via-manual-Google-login-auth-bootstrap-retry1/test-failed-1.png\n    ────────────────────────────────────────────────────────────────────────────────────────────────\n\n    attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────\n    artifacts/test-results/setup-auth-bootstrap-boots-8a7ae-ate-via-manual-Google-login-auth-bootstrap-retry1/video.webm\n    ────────────────────────────────────────────────────────────────────────────────────────────────\n\n    Error Context: artifacts/test-results/setup-auth-bootstrap-boots-8a7ae-ate-via-manual-Google-login-auth-bootstrap-retry1/error-context.md\n\n    attachment #4: trace (application/zip) ─────────────────────────────────────────────────────────\n    artifacts/test-results/setup-auth-bootstrap-boots-8a7ae-ate-via-manual-Google-login-auth-bootstrap-retry1/trace.zip\n    Usage:\n\n        npx playwright show-trace artifacts/test-results/setup-auth-bootstrap-boots-8a7ae-ate-via-manual-Google-login-auth-bootstrap-retry1/trace.zip\n\n    ────────────────────────────────────────────────────────────────────────────────────────────────\n\n  2) [chromium-hrd] › tests/functional/internal-clustering-flow.spec.ts:34:7 › @regression internal clustering flow › halaman kandidat internal termuat setelah navigasi dari shell \n\n    Error: \u001b[2mexpect(\u001b[22m\u001b[31mpage\u001b[39m\u001b[2m).\u001b[22mtoHaveURL\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\n    Expected pattern: \u001b[32m/\\/internal\\/(applications|candidates)/\u001b[39m\n    Received string:  \u001b[31m\"https://rekrutia.digital/internal/kandidat\"\u001b[39m\n    Timeout: 10000ms\n\n    Call log:\n    \u001b[2m  - Expect \"toHaveURL\" with timeout 10000ms\u001b[22m\n    \u001b[2m    2 × unexpected value \"https://rekrutia.digital/internal/dashboard\"\u001b[22m\n    \u001b[2m    19 × unexpected value \"https://rekrutia.digital/internal/kandidat\"\u001b[22m\n\n\n      36 |     await internalLayoutPage.navigateTo('Kandidat');\n      37 |\n    > 38 |     await expect(page).toHaveURL(/\\/internal\\/(applications|candidates)/);\n         |                        ^\n      39 |     await expect(page.locator('body')).toContainText(/kandidat|lamaran/i);\n      40 |   });\n      41 | });\n        at /app/tests/functional/internal-clustering-flow.spec.ts:38:24\n\n    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────\n    artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-chromium-hrd/test-failed-1.png\n    ────────────────────────────────────────────────────────────────────────────────────────────────\n\n    attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────\n    artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-chromium-hrd/video.webm\n    ────────────────────────────────────────────────────────────────────────────────────────────────\n\n    Error Context: artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-chromium-hrd/error-context.md\n\n    attachment #4: trace (application/zip) ─────────────────────────────────────────────────────────\n    artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-chromium-hrd/trace.zip\n    Usage:\n\n        npx playwright show-trace artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-chromium-hrd/trace.zip\n\n    ────────────────────────────────────────────────────────────────────────────────────────────────\n\n    Retry #1 ───────────────────────────────────────────────────────────────────────────────────────\n\n    Error: \u001b[2mexpect(\u001b[22m\u001b[31mpage\u001b[39m\u001b[2m).\u001b[22mtoHaveURL\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\n    Expected pattern: \u001b[32m/\\/internal\\/(applications|candidates)/\u001b[39m\n    Received string:  \u001b[31m\"https://rekrutia.digital/internal/kandidat\"\u001b[39m\n    Timeout: 10000ms\n\n    Call log:\n    \u001b[2m  - Expect \"toHaveURL\" with timeout 10000ms\u001b[22m\n    \u001b[2m    2 × unexpected value \"https://rekrutia.digital/internal/dashboard\"\u001b[22m\n    \u001b[2m    19 × unexpected value \"https://rekrutia.digital/internal/kandidat\"\u001b[22m\n\n\n      36 |     await internalLayoutPage.navigateTo('Kandidat');\n      37 |\n    > 38 |     await expect(page).toHaveURL(/\\/internal\\/(applications|candidates)/);\n         |                        ^\n      39 |     await expect(page.locator('body')).toContainText(/kandidat|lamaran/i);\n      40 |   });\n      41 | });\n        at /app/tests/functional/internal-clustering-flow.spec.ts:38:24\n\n    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────\n    artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-chromium-hrd-retry1/test-failed-1.png\n    ────────────────────────────────────────────────────────────────────────────────────────────────\n\n    attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────\n    artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-chromium-hrd-retry1/video.webm\n    ────────────────────────────────────────────────────────────────────────────────────────────────\n\n    Error Context: artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-chromium-hrd-retry1/error-context.md\n\n    attachment #4: trace (application/zip) ─────────────────────────────────────────────────────────\n    artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-chromium-hrd-retry1/trace.zip\n    Usage:\n\n        npx playwright show-trace artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-chromium-hrd-retry1/trace.zip\n\n    ────────────────────────────────────────────────────────────────────────────────────────────────\n\n  3) [chromium-superadmin] › tests/functional/internal-clustering-flow.spec.ts:34:7 › @regression internal clustering flow › halaman kandidat internal termuat setelah navigasi dari shell \n\n    Error: \u001b[2mexpect(\u001b[22m\u001b[31mpage\u001b[39m\u001b[2m).\u001b[22mtoHaveURL\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\n    Expected pattern: \u001b[32m/\\/internal\\/(applications|candidates)/\u001b[39m\n    Received string:  \u001b[31m\"https://rekrutia.digital/internal/kandidat\"\u001b[39m\n    Timeout: 10000ms\n\n    Call log:\n    \u001b[2m  - Expect \"toHaveURL\" with timeout 10000ms\u001b[22m\n    \u001b[2m    2 × unexpected value \"https://rekrutia.digital/internal/dashboard\"\u001b[22m\n    \u001b[2m    19 × unexpected value \"https://rekrutia.digital/internal/kandidat\"\u001b[22m\n\n\n      36 |     await internalLayoutPage.navigateTo('Kandidat');\n      37 |\n    > 38 |     await expect(page).toHaveURL(/\\/internal\\/(applications|candidates)/);\n         |                        ^\n      39 |     await expect(page.locator('body')).toContainText(/kandidat|lamaran/i);\n      40 |   });\n      41 | });\n        at /app/tests/functional/internal-clustering-flow.spec.ts:38:24\n\n    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────\n    artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-chromium-superadmin/test-failed-1.png\n    ────────────────────────────────────────────────────────────────────────────────────────────────\n\n    attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────\n    artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-chromium-superadmin/video.webm\n    ────────────────────────────────────────────────────────────────────────────────────────────────\n\n    Error Context: artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-chromium-superadmin/error-context.md\n\n    attachment #4: trace (application/zip) ─────────────────────────────────────────────────────────\n    artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-chromium-superadmin/trace.zip\n    Usage:\n\n        npx playwright show-trace artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-chromium-superadmin/trace.zip\n\n    ────────────────────────────────────────────────────────────────────────────────────────────────\n\n    Retry #1 ───────────────────────────────────────────────────────────────────────────────────────\n\n    Error: \u001b[2mexpect(\u001b[22m\u001b[31mpage\u001b[39m\u001b[2m).\u001b[22mtoHaveURL\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\n    Expected pattern: \u001b[32m/\\/internal\\/(applications|candidates)/\u001b[39m\n    Received string:  \u001b[31m\"https://rekrutia.digital/internal/kandidat\"\u001b[39m\n    Timeout: 10000ms\n\n    Call log:\n    \u001b[2m  - Expect \"toHaveURL\" with timeout 10000ms\u001b[22m\n    \u001b[2m    5 × unexpected value \"https://rekrutia.digital/internal/dashboard\"\u001b[22m\n    \u001b[2m    17 × unexpected value \"https://rekrutia.digital/internal/kandidat\"\u001b[22m\n\n\n      36 |     await internalLayoutPage.navigateTo('Kandidat');\n      37 |\n    > 38 |     await expect(page).toHaveURL(/\\/internal\\/(applications|candidates)/);\n         |                        ^\n      39 |     await expect(page.locator('body')).toContainText(/kandidat|lamaran/i);\n      40 |   });\n      41 | });\n        at /app/tests/functional/internal-clustering-flow.spec.ts:38:24\n\n    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────\n    artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-chromium-superadmin-retry1/test-failed-1.png\n    ────────────────────────────────────────────────────────────────────────────────────────────────\n\n    attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────\n    artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-chromium-superadmin-retry1/video.webm\n    ────────────────────────────────────────────────────────────────────────────────────────────────\n\n    Error Context: artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-chromium-superadmin-retry1/error-context.md\n\n    attachment #4: trace (application/zip) ─────────────────────────────────────────────────────────\n    artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-chromium-superadmin-retry1/trace.zip\n    Usage:\n\n        npx playwright show-trace artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-chromium-superadmin-retry1/trace.zip\n\n    ────────────────────────────────────────────────────────────────────────────────────────────────\n\n  4) [mobile-chromium-hrd] › tests/functional/internal-clustering-flow.spec.ts:34:7 › @regression internal clustering flow › halaman kandidat internal termuat setelah navigasi dari shell \n\n    Error: \u001b[2mexpect(\u001b[22m\u001b[31mpage\u001b[39m\u001b[2m).\u001b[22mtoHaveURL\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\n    Expected pattern: \u001b[32m/\\/internal\\/(applications|candidates)/\u001b[39m\n    Received string:  \u001b[31m\"https://rekrutia.digital/internal/kandidat\"\u001b[39m\n    Timeout: 10000ms\n\n    Call log:\n    \u001b[2m  - Expect \"toHaveURL\" with timeout 10000ms\u001b[22m\n    \u001b[2m    2 × unexpected value \"https://rekrutia.digital/internal/dashboard\"\u001b[22m\n    \u001b[2m    19 × unexpected value \"https://rekrutia.digital/internal/kandidat\"\u001b[22m\n\n\n      36 |     await internalLayoutPage.navigateTo('Kandidat');\n      37 |\n    > 38 |     await expect(page).toHaveURL(/\\/internal\\/(applications|candidates)/);\n         |                        ^\n      39 |     await expect(page.locator('body')).toContainText(/kandidat|lamaran/i);\n      40 |   });\n      41 | });\n        at /app/tests/functional/internal-clustering-flow.spec.ts:38:24\n\n    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────\n    artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-mobile-chromium-hrd/test-failed-1.png\n    ────────────────────────────────────────────────────────────────────────────────────────────────\n\n    attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────\n    artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-mobile-chromium-hrd/video.webm\n    ────────────────────────────────────────────────────────────────────────────────────────────────\n\n    Error Context: artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-mobile-chromium-hrd/error-context.md\n\n    attachment #4: trace (application/zip) ─────────────────────────────────────────────────────────\n    artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-mobile-chromium-hrd/trace.zip\n    Usage:\n\n        npx playwright show-trace artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-mobile-chromium-hrd/trace.zip\n\n    ────────────────────────────────────────────────────────────────────────────────────────────────\n\n    Retry #1 ───────────────────────────────────────────────────────────────────────────────────────\n\n    Error: \u001b[2mexpect(\u001b[22m\u001b[31mpage\u001b[39m\u001b[2m).\u001b[22mtoHaveURL\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\n    Expected pattern: \u001b[32m/\\/internal\\/(applications|candidates)/\u001b[39m\n    Received string:  \u001b[31m\"https://rekrutia.digital/internal/kandidat\"\u001b[39m\n    Timeout: 10000ms\n\n    Call log:\n    \u001b[2m  - Expect \"toHaveURL\" with timeout 10000ms\u001b[22m\n    \u001b[2m    2 × unexpected value \"https://rekrutia.digital/internal/dashboard\"\u001b[22m\n    \u001b[2m    19 × unexpected value \"https://rekrutia.digital/internal/kandidat\"\u001b[22m\n\n\n      36 |     await internalLayoutPage.navigateTo('Kandidat');\n      37 |\n    > 38 |     await expect(page).toHaveURL(/\\/internal\\/(applications|candidates)/);\n         |                        ^\n      39 |     await expect(page.locator('body')).toContainText(/kandidat|lamaran/i);\n      40 |   });\n      41 | });\n        at /app/tests/functional/internal-clustering-flow.spec.ts:38:24\n\n    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────\n    artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-mobile-chromium-hrd-retry1/test-failed-1.png\n    ────────────────────────────────────────────────────────────────────────────────────────────────\n\n    attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────\n    artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-mobile-chromium-hrd-retry1/video.webm\n    ────────────────────────────────────────────────────────────────────────────────────────────────\n\n    Error Context: artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-mobile-chromium-hrd-retry1/error-context.md\n\n    attachment #4: trace (application/zip) ─────────────────────────────────────────────────────────\n    artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-mobile-chromium-hrd-retry1/trace.zip\n    Usage:\n\n        npx playwright show-trace artifacts/test-results/functional-internal-cluste-fadab-setelah-navigasi-dari-shell-mobile-chromium-hrd-retry1/trace.zip\n\n    ────────────────────────────────────────────────────────────────────────────────────────────────\n\n  4 failed\n    [auth-bootstrap] › tests/setup/auth-bootstrap.spec.ts:5:5 › bootstrap auth state via manual Google login \n    [chromium-hrd] › tests/functional/internal-clustering-flow.spec.ts:34:7 › @regression internal clustering flow › halaman kandidat internal termuat setelah navigasi dari shell \n    [chromium-superadmin] › tests/functional/internal-clustering-flow.spec.ts:34:7 › @regression internal clustering flow › halaman kandidat internal termuat setelah navigasi dari shell \n    [mobile-chromium-hrd] › tests/functional/internal-clustering-flow.spec.ts:34:7 › @regression internal clustering flow › halaman kandidat internal termuat setelah navigasi dari shell \n  15 skipped\n  29 passed (10.2m)\n"}],"artifactsDir":"/app/artifacts","targets":["api","smoke","functional","regression","prod-safe","all"],"authState":{"hrd":{"exists":true,"path":"/app/.auth/hrd.json"},"superadmin":{"exists":true,"path":"/app/.auth/superadmin.json"}}}