Fix Playwright cookie auth in Docker CI environment
Some checks failed
CI/CD / test-frontend (pull_request) Successful in 25s
CI/CD / e2e-smoke (pull_request) Failing after 3m7s
CI/CD / test-go-pg (pull_request) Successful in 3m11s
CI/CD / test-runners (pull_request) Failing after 3m30s
CI/CD / test-sqlite (pull_request) Successful in 3m36s
CI/CD / build-and-deploy (pull_request) Has been skipped
CI/CD / detect-changes (pull_request) Successful in 4s
Some checks failed
CI/CD / test-frontend (pull_request) Successful in 25s
CI/CD / e2e-smoke (pull_request) Failing after 3m7s
CI/CD / test-go-pg (pull_request) Successful in 3m11s
CI/CD / test-runners (pull_request) Failing after 3m30s
CI/CD / test-sqlite (pull_request) Successful in 3m36s
CI/CD / build-and-deploy (pull_request) Has been skipped
CI/CD / detect-changes (pull_request) Successful in 4s
Both test drivers (surface-test-driver.js, e2e-smoke-driver.js) set the arm_token cookie using domain: hostname, which fails in Docker where the hostname is a DNS name like "armature". Playwright's addCookies with a bare domain doesn't reliably match the request origin in this environment. Switch to url-based cookie setting which matches the full origin and works reliably across local and Docker environments. Also wait for .sw-topbar with waitForSelector instead of immediate DOM check to handle Preact SPA boot timing. This fixes the v0.7.2 "Run All button not found" issue — the root cause was auth redirect to /login, not a rendering problem. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -33,12 +33,12 @@ if (!TOKEN) {
|
||||
const browser = await chromium.launch({ headless: true });
|
||||
const context = await browser.newContext();
|
||||
|
||||
// Set auth cookie — name must match server's SetCookie ("arm_token")
|
||||
// Set auth cookie — use url instead of domain for reliable matching
|
||||
// in Docker/CI where hostname is a Docker DNS name (e.g. "armature")
|
||||
await context.addCookies([{
|
||||
name: 'arm_token',
|
||||
value: TOKEN,
|
||||
domain: new URL(SERVER).hostname,
|
||||
path: '/',
|
||||
url: SERVER,
|
||||
}]);
|
||||
|
||||
const page = await context.newPage();
|
||||
|
||||
Reference in New Issue
Block a user