Files
bitvid/playwright.config.ts
T

68 lines
1.7 KiB
TypeScript

import { defineConfig } from "@playwright/test";
import path from "node:path";
const HOST = process.env.PLAYWRIGHT_HOST ?? "127.0.0.1";
const PORT = Number.parseInt(process.env.PLAYWRIGHT_PORT ?? "4173", 10);
const BASE_URL = process.env.PLAYWRIGHT_BASE_URL ?? `http://${HOST}:${PORT}`;
const ENABLE_EXTENSION_E2E = process.env.PLAYWRIGHT_ENABLE_EXTENSION_E2E === "1";
const EXTENSION_PATH = process.env.PLAYWRIGHT_EXTENSION_PATH
? path.resolve(process.env.PLAYWRIGHT_EXTENSION_PATH)
: "";
const projects = [
{
name: "visual",
testMatch: "visual/**/*.spec.ts",
use: {
screenshot: "only-on-failure",
trace: "retain-on-failure",
video: "retain-on-failure",
},
},
{
name: "e2e",
testMatch: "e2e/**/*.spec.ts",
use: {
browserName: "chromium",
},
},
{
name: "e2e-firefox",
testMatch: "e2e/**/*.spec.ts",
use: {
browserName: "firefox",
},
},
];
if (ENABLE_EXTENSION_E2E && EXTENSION_PATH) {
projects.push({
name: "e2e-nip07-extension",
testMatch: "e2e-extension/**/*.spec.ts",
use: {
browserName: "chromium",
},
});
}
export default defineConfig({
testDir: "./tests",
outputDir: "artifacts/test-results",
timeout: 60_000,
reporter: process.env.CI
? [["github"], ["html", { open: "never" }]]
: [["list"], ["html", { open: "never" }]],
use: {
baseURL: BASE_URL,
viewport: { width: 1280, height: 720 },
ignoreHTTPSErrors: true,
},
projects,
webServer: {
command: `npx http-server . -p ${PORT} -a ${HOST} -c-1 --silent`,
url: `${BASE_URL}/docs/kitchen-sink.html`,
reuseExistingServer: !process.env.CI,
timeout: 120_000,
},
});