/** * Login helpers using dev endpoints. * These set real httpOnly JWT cookies so all middleware works naturally. */ /** * Login as admin via the dev test-login endpoint. * Creates a test admin user if none exists and sets the auth cookie. * Handles cases where the dev server is slow to redirect under load. */ export async function loginAsAdmin(page) { await page.goto('/api/dev/test-login', { waitUntil: 'domcontentloaded' }) // The endpoint sets the cookie and redirects to /admin. // Under heavy parallel load the redirect may not complete, so fall back to manual navigation. try { await page.waitForURL(/\/admin/, { timeout: 15000 }) } catch { // Cookie should be set even if redirect failed — navigate manually await page.goto('/admin', { waitUntil: 'domcontentloaded' }) await page.waitForURL(/\/admin/) } } /** * Login as a specific member by email via the dev member-login endpoint. */ export async function loginAsMember(page, email) { await page.goto(`/api/dev/member-login?email=${encodeURIComponent(email)}`, { waitUntil: 'domcontentloaded' }) await page.waitForURL(/\/member\//) }