Files
votianng/playwright.config.ts
T

39 lines
1.3 KiB
TypeScript

import { defineConfig } from "@playwright/test";
export default defineConfig({
testDir: "./tests",
fullyParallel: false,
workers: 1,
retries: 0,
timeout: 30_000,
reporter: [
["list"],
["html", { outputFolder: "work/playwright-report", open: "never" }],
],
outputDir: "work/test-results",
use: {
baseURL: "http://127.0.0.1:18080",
channel: process.platform === "darwin" ? "chrome" : undefined,
headless: true,
viewport: { width: 1440, height: 1000 },
screenshot: "only-on-failure",
trace: "retain-on-failure",
},
webServer: {
command:
`python3 -c 'import os; from pathlib import Path; jars = sorted(Path("backend/target").glob("votian-backend-*.jar")); assert len(jars) == 1, "Run ./build.sh first: expected exactly one backend JAR"; os.execvp("java", ["java", "-jar", str(jars[0]), "--server.port=18080"])'`,
// Start the built JAR directly: do not load the developer's .env file.
// Explicitly unreachable endpoint: no test can connect to the real database.
env: {
DB_URL:
"jdbc:mariadb://127.0.0.1:1/unreachable?connectTimeout=500&socketTimeout=500",
DB_USER: "test",
DB_PASSWORD: "test",
LEGACY_APP_URL: "",
},
url: "http://127.0.0.1:18080/api/health",
reuseExistingServer: false,
timeout: 60_000,
},
});