import { createRequire } from "node:module"; import { defineConfig, devices } from "@playwright/test"; const require = createRequire(import.meta.url); const { shouldIncludeWebKit } = require("../scripts/playwrightHostDeps.cjs") as { shouldIncludeWebKit: () => boolean; }; const configuredWorkers = process.env.PLAYWRIGHT_WORKERS ? Number.parseInt(process.env.PLAYWRIGHT_WORKERS, 10) : undefined; const skipWebServer = process.env.PLAYWRIGHT_SKIP_WEBSERVER === "1" || process.env.PLAYWRIGHT_SKIP_WEBSERVER === "true"; const baseURL = process.env.PLAYWRIGHT_BASE_URL || "http://localhost:5174"; /** * Read environment variables from file. * https://github.com/motdotla/dotenv */ // import dotenv from 'dotenv'; // import path from 'path'; // dotenv.config({ path: path.resolve(__dirname, '.env') }); /** * See https://playwright.dev/docs/test-configuration. */ export default defineConfig({ testDir: "./tests", /* Run tests in files in parallel */ fullyParallel: true, /* Fail the build on CI if you accidentally left test.only in the source code. */ forbidOnly: !!process.env.CI, /* Retry on CI only */ retries: process.env.CI ? 2 : 0, /* Opt out of parallel tests on CI. */ workers: configuredWorkers ?? (process.env.CI ? 1 : undefined), /* Reporter to use. See https://playwright.dev/docs/test-reporters */ reporter: [["html", { open: "never" }], ["list"]], /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ use: { /* Base URL to use in actions like `await page.goto('/')`. */ baseURL, /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ trace: "on-first-retry", }, /* Configure projects for major browsers */ projects: [ { name: "chromium", use: { ...devices["Desktop Chrome"] }, }, { name: "firefox", use: { ...devices["Desktop Firefox"] }, }, ...(shouldIncludeWebKit() ? [ { name: "webkit", use: { ...devices["Desktop Safari"] }, }, ] : []), ], /* Run your local dev server before starting the tests */ webServer: skipWebServer ? undefined : { command: process.env.CI ? "VITE_OIDC_AUTHORITY=http://localhost:5000/oidc npm run build && npm run preview -- --port 5174" : "VITE_OIDC_AUTHORITY=http://localhost:5000/oidc npm run dev -- --port 5174", url: baseURL, reuseExistingServer: !process.env.CI, }, });