// ABOUTME: Playwright global setup - starts PocketBase and sets test environment variables. // ABOUTME: Runs before all e2e tests to provide a fresh database with test data. import * as fs from "node:fs"; import * as path from "node:path"; import { DEFAULT_CONFIG, start } from "./pocketbase-harness"; const STATE_FILE = path.join(__dirname, ".harness-state.json"); export default async function globalSetup(): Promise { console.log("Starting PocketBase for e2e tests..."); const state = await start(DEFAULT_CONFIG); // Save state for teardown fs.writeFileSync( STATE_FILE, JSON.stringify({ dataDir: state.dataDir, url: state.url, pid: state.process.pid, }), ); // Set environment variables for the test process process.env.NEXT_PUBLIC_POCKETBASE_URL = state.url; process.env.POCKETBASE_URL = state.url; process.env.TEST_USER_EMAIL = DEFAULT_CONFIG.testUserEmail; process.env.TEST_USER_PASSWORD = DEFAULT_CONFIG.testUserPassword; console.log(`PocketBase running at ${state.url}`); console.log(`Test user: ${DEFAULT_CONFIG.testUserEmail}`); }