/** * cPad Authentication Setup * * This file is matched by the `cpad-setup` Playwright project (see playwright.config.ts). * It runs ONCE before all cpad tests, logs in as admin, and saves the browser * storage state to tests/.auth/admin.json so subsequent tests skip the login step. * * Run only this setup step: * npx playwright test --project=cpad-setup */ import { test as setup } from '@playwright/test'; import { loginAsAdmin, AUTH_FILE } from '../helpers/auth'; import fs from 'fs'; import path from 'path'; setup('authenticate as cPad admin', async ({ page }) => { // Ensure the .auth directory exists const authDir = path.dirname(AUTH_FILE); if (!fs.existsSync(authDir)) { fs.mkdirSync(authDir, { recursive: true }); } await loginAsAdmin(page); // Persist cookies + localStorage for the cpad project await page.context().storageState({ path: AUTH_FILE }); });