feat: add UI conformance and launch context

This commit is contained in:
2026-08-18 21:32:25 +02:00
parent 7685a103e8
commit 8a925782ab
35 changed files with 1125 additions and 150 deletions
+47
View File
@@ -0,0 +1,47 @@
import { existsSync, readdirSync } from "node:fs";
import { homedir } from "node:os";
import { join } from "node:path";
import { chromium, defineConfig } from "@playwright/test";
function chromiumExecutable(): string | undefined {
const configured = process.env.PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH;
if (configured) return configured;
const managed = chromium.executablePath();
if (existsSync(managed)) return managed;
const roots = [
join(homedir(), ".cache", "ms-playwright"),
join(homedir(), ".var", "app", "com.vscodium.codium", "cache", "ms-playwright")
];
for (const root of roots) {
if (!existsSync(root)) continue;
const installations = readdirSync(root).filter((entry) => entry.startsWith("chromium-")).sort().reverse();
for (const installation of installations) {
const candidate = join(root, installation, "chrome-linux64", "chrome");
if (existsSync(candidate)) return candidate;
}
}
return undefined;
}
export default defineConfig({
testDir: "./conformance/tests",
snapshotPathTemplate: "{testDir}/snapshots/{arg}{ext}",
fullyParallel: false,
workers: 1,
reporter: "line",
use: {
baseURL: "http://127.0.0.1:4174",
browserName: "chromium",
colorScheme: "light",
locale: "de-DE",
reducedMotion: "reduce",
launchOptions: chromiumExecutable() ? { executablePath: chromiumExecutable() } : undefined
},
webServer: {
command: "npm run dev:conformance",
url: "http://127.0.0.1:4174",
reuseExistingServer: false,
timeout: 120_000
}
});