import type { Page } from '@playwright/test';
import { expect } from '@playwright/test';
import { registerBaseApiMocks } from './mock-api';
import { agentUser } from '../fixtures/users';

export async function loginWithOtp(page: Page, email = agentUser.email): Promise<void> {
  await registerBaseApiMocks(page);
  await page.goto('/login');
  await page.getByTestId('login-email').fill(email);
  await page.getByTestId('login-send-otp').click();
  await page.getByTestId('login-otp').locator('input[type="text"]').first().pressSequentially('123456');
  await page.getByTestId('login-verify-otp').click();
  await expect(page).toHaveURL(/\/dashboard/);
}

export async function loginWithMagicLink(page: Page, email = agentUser.email): Promise<void> {
  await registerBaseApiMocks(page);
  await page.goto('/login');
  await page.getByTestId('login-email').fill(email);
  await page.getByTestId('login-send-magic-link').click();
  await expect(page.getByText(/check your email|magic link/i)).toBeVisible();
}
