Add aria-labels to form controls (selects, checkboxes, switches), set html lang attribute and page title, fix color contrast for --candle-dim and --text-faint tokens, underline inline links, remove opacity hack. Harden dev login endpoints with atomic findOneAndUpdate and tokenVersion in JWT. Update Playwright timeouts and E2E test helpers.
31 lines
1.1 KiB
JavaScript
31 lines
1.1 KiB
JavaScript
/**
|
|
* 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\//)
|
|
}
|