diff --git a/docker-compose.e2e.yml b/docker-compose.e2e.yml index 681136e..cd1ab66 100644 --- a/docker-compose.e2e.yml +++ b/docker-compose.e2e.yml @@ -90,7 +90,7 @@ services: done; echo 'Waiting for backend...'; for i in \$(seq 1 120); do - curl -sf http://backend:8080/api/vehicles/ZZZ999 > /dev/null && break; + curl -s -o /dev/null http://backend:8080/api/vehicles/ZZZ999 && break; sleep 1; done; echo 'Waiting for frontend...'; diff --git a/frontend/playwright.config.ts b/frontend/playwright.config.ts index 8613604..7daf7a5 100644 --- a/frontend/playwright.config.ts +++ b/frontend/playwright.config.ts @@ -5,7 +5,14 @@ const isCI = !!process.env.PLAYWRIGHT_BASE_URL export default defineConfig({ testDir: './e2e', timeout: 30_000, - retries: 0, + // CI flakes: the E2E stack runs 4 parallel Playwright workers against a + // single backend (Spring Boot, no -Xmx cap). Under load an occasional + // order-creation request transiently fails, which surfaces as a spurious + // "navigation to /betalning/ timed out" failure unrelated to the code under + // test (e.g. run 103, where 2 navigation tests failed while 94/94 passed + // locally on the same commit). Per Playwright's guidance, retry transient + // failures in CI; keep retries off locally for fast feedback. + retries: isCI ? 2 : 0, use: { baseURL: process.env.PLAYWRIGHT_BASE_URL || 'http://localhost:3000', headless: true,