import { lstatSync, mkdirSync } from "node:fs"; import { tmpdir } from "node:os"; import { basename, join } from "node:path"; import { defineConfig, type PlaywrightTestConfig } 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"); const config: PlaywrightTestConfig = defineConfig({ outputDir: join(outputRoot, basename(process.cwd())), ...(process.env["CI"] ? { workers: 1 } : {}), projects: [ { name: "chromium", use: { browserName: "chromium" } }, { name: "firefox", use: { browserName: "firefox" } }, ], use: { headless: true, }, }); export default config;