import { test as setup } from '@playwright/test';
import path from 'path';
import { fileURLToPath } from 'url';

const __dirname = path.dirname(fileURLToPath(import.meta.url));
const authFile = path.join(__dirname, '.auth/user.json');

/**
 * Logs in once and saves the session cookie so all E2E tests can reuse it.
 * Configure credentials via environment variables:
 *   E2E_USERNAME  (default: admin)
 *   E2E_PASSWORD  (default: admin123)
 */
setup('authenticate', async ({ page }) => {
	const username = process.env.E2E_USERNAME ?? 'admin@familyarchive.local';
	const password = process.env.E2E_PASSWORD ?? 'admin123';

	await page.goto('/login');
	await page.getByLabel(/e-mail/i).fill(username);
	await page.getByLabel(/passwort/i).fill(password);
	await page.getByRole('button', { name: 'Anmelden' }).click();
	await page.waitForURL('/');

	await page.context().storageState({ path: authFile });
});
