import { Page, APIRequestContext } from '@playwright/test';

/** Přihlásí uživatele přes POST /api/login a uloží JWT do localStorage. */
export async function loginViaApi(page: Page, login: string): Promise<void> {
    const response = await page.request.post('/api/login', {
        headers: { 'Content-Type': 'application/json', 'remote-user': login },
        data: {},
    });
    const token = await response.json() as string;
    await page.goto('/');
    await page.evaluate((t) => localStorage.setItem('token', t), token);
}

/** Vyčistí stav dne pro zadaný dayIndex (0=pondělí…4=pátek) přes dev API.
 *  /api/dev/* vyžaduje JWT – nejdřív získáme token přes /api/login.
 */
export async function clearDay(request: APIRequestContext, dayIndex = 4): Promise<void> {
    const loginResp = await request.post('/api/login', { data: {} });
    const token = await loginResp.json() as string;
    await request.post('/api/dev/clear', {
        headers: { Authorization: `Bearer ${token}` },
        data: { dayIndex },
    });
}
