/** * Global setup for E2E tests. * Creates a predictable test user so auth tests don't fail on missing accounts. * Uses native fetch to avoid conflicts with vitest. */ export default async function globalSetup() { const baseURL = process.env.PLAYWRIGHT_BASE_URL || 'http://localhost:3000'; const testUser = { username: 'e2e_testuser', password: 'TestPassword123!', email: 'e2e@example.com', full_name: 'E2E Test User', }; // Try to register the test user (ignore 400 if already exists) const resp = await fetch(`${baseURL}/api/auth/register`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(testUser), }); if (resp.ok || resp.status === 400) { console.log(`[global-setup] Test user "${testUser.username}" ready`); } else { const body = await resp.text().catch(() => ''); console.warn(`[global-setup] Register returned ${resp.status}: ${body}`); } }