{"title":"Rekrutia QA Console","currentRun":null,"history":[{"id":"api-2026-07-30T09-07-38-186Z","target":"api","status":"passed","startedAt":"2026-07-30T09:07:38.190Z","finishedAt":"2026-07-30T09:07:41.912Z","exitCode":0,"logPath":"/app/artifacts/console-runs/api-2026-07-30T09-07-38-186Z/output.log","summaryPath":"/app/artifacts/console-runs/api-2026-07-30T09-07-38-186Z/summary.md","jsonPath":"/app/artifacts/console-runs/api-2026-07-30T09-07-38-186Z/results.json","output":"\n> rekrutia-qa-playwright@0.1.0 qa:api\n> playwright test tests/api\n\n◇ injected env (0) from .env // tip: ⌘ multiple files { path: ['.env.local', '.env'] }\n\nRunning 6 tests using 2 workers\n\n◇ injected env (0) from .env // tip: ◈ secrets for agents [www.dotenvx.com]\n◇ injected env (0) from .env // tip: ⌘ override existing { override: true }\n  ✓  1 [api-no-auth] › tests/api/service-contracts.spec.ts:33:7 › @regression API contracts › cv-analysis menerima format auth header jika token QA diatur (83ms)\n  ✓  2 [api-no-auth] › tests/api/service-contracts.spec.ts:18:7 › @regression API contracts › cv-analysis menolak request tanpa token (89ms)\n  ✓  3 [api-no-auth] › tests/api/service-contracts.spec.ts:54:7 › @regression API contracts › cv-clustering preflight menolak atau merespons terstruktur (49ms)\n  ✓  5 [api-no-auth] › tests/api/service-health.spec.ts:23:7 › @smoke @prod-safe service health checks › service cv-analysis merespons sehat (16ms)\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 (526ms)\n\n  6 passed (2.0s)\n"}],"artifactsDir":"/app/artifacts","targets":["api","smoke","functional","regression","prod-safe","all"],"authState":{"hrd":{"exists":false,"path":"/app/.auth/hrd.json"},"superadmin":{"exists":false,"path":"/app/.auth/superadmin.json"}}}