import { lstatSync, mkdirSync } from "node:fs"; import { tmpdir } from "node:os"; import { basename, join } from "node:path"; import { defineConfig } from "@playwright/test"; const outputRoot = join(tmpdir(), "pi-ext-playwright-results"); mkdirSync(outputRoot, { recursive: true, mode: 0o700 }); const outputStat = lstatSync(outputRoot); if ( !outputStat.isDirectory() || outputStat.isSymbolicLink() || (process.platform !== "win32" && (outputStat.mode & 0o077) !== 0) ) throw new Error("Playwright output directory is not private"); export default defineConfig({ outputDir: join(outputRoot, basename(process.cwd())), workers: process.env.CI ? 1 : undefined, projects: [ { name: "chromium", use: { browserName: "chromium" } }, { name: "firefox", use: { browserName: "firefox" } }, ], use: { headless: true, }, });