// Shared sign-in prelude for the pre-auth-gate E2E suites. Each suite creates // its own fresh family per run (unique name) so accumulated data from a // previous run's assets/hibah/etc. can never bleed into another run's // percentage/coverage assertions — same isolation the old per-context // localStorage gave for free, now done explicitly since data is shared and // persistent in Supabase instead of wiped with the browser context. const OWNER_EMAIL = 'nurfalah.e2etest.owner@gmail.com'; const OWNER_PASSWORD = 'TestPassword123!'; async function signInFreshFamily(page, BASE, familyLabel) { await page.goto(BASE, { waitUntil: 'networkidle' }); await page.locator('.field:has-text("Email") input').fill(OWNER_EMAIL); await page.locator('.field:has-text("Password") input').fill(OWNER_PASSWORD); await page.locator('button.btn-primary', { hasText: 'Sign in' }).click(); await page.waitForTimeout(1500); const familyName = `${familyLabel || 'E2E'} ${Date.now()}-${Math.floor(Math.random() * 1e6)}`; await page.locator('.field:has-text("Family name") input').fill(familyName); await page.locator('button.btn-primary', { hasText: 'Create family' }).click(); await page.waitForTimeout(1200); return familyName; } module.exports = { signInFreshFamily, OWNER_EMAIL, OWNER_PASSWORD };