feat: add UI conformance and launch context
This commit is contained in:
@@ -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
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user