firehose/app/playwright.docker.config.ts
Firehose Bot 6b201e7e63 Set up Playwright for browser testing
- Playwright config for local browsers (Firefox by default) and Docker Chrome
- docker-compose.chrome.yml for browserless/chrome container (arm64)
- 4 connectivity smoke tests (home, contact, blog pages)
- 3 auth tests (redirect, login, logout) with auth helpers
- Custom fixtures with remote CDP connect support
- Shell scripts for start/stop/full Docker Chrome workflow
- Makefile targets: playwright, playwright-docker, playwright-full
2026-05-18 23:12:42 +01:00

42 lines
1.1 KiB
TypeScript

import { defineConfig, devices } from "@playwright/test";
// Docker Chrome Playwright configuration.
// Connects to a remote browserless/chrome container via CDP.
//
// Usage:
// 1. Start the Chrome container:
// docker compose -f docker-compose.chrome.yml up -d
//
// 2. Run tests:
// npx playwright test --config=playwright.docker.config.ts
const CDP_URL = process.env.PLAYWRIGHT_CDP_URL || "http://localhost:3000";
export default defineConfig({
testDir: "./test/e2e",
fullyParallel: true,
forbidOnly: !!process.env.CI,
retries: process.env.CI ? 2 : 0,
workers: process.env.CI ? 1 : undefined,
reporter: "list",
use: {
baseURL: process.env.PLAYWRIGHT_BASE_URL || "http://localhost:8056",
trace: "on-first-retry",
headless: process.env.PLAYWRIGHT_HEADLESS !== "false",
},
// Connect to remote Chrome via CDP instead of launching locally.
// browserless/chrome exposes CDP at port 3000.
projects: [
{
name: "docker-chrome",
use: {
...devices["Desktop Chrome"],
launchOptions: {
// Not used for remote connection, but placeholder for clarity
},
},
},
],
});