import { expect, test } from '@playwright/test';

for (const scenario of [
  { locale: 'en', theme: 'light' },
  { locale: 'en', theme: 'dark' },
  { locale: 'fr', theme: 'light' },
  { locale: 'ar', theme: 'light' },
  { locale: 'ar', theme: 'dark' },
] as const) {
  test(`${scenario.locale} ${scenario.theme} demo initial and validation states`, async ({
    page,
  }) => {
    test.skip(test.info().project.name !== 'chromium', 'Canonical visual baselines use Chromium.');
    await page.emulateMedia({ colorScheme: scenario.theme });
    await page.goto(`/${scenario.locale}/${scenario.theme}`);
    await page.locator('main button[data-demo-source="hero"]').click();
    const dialog = page.getByRole('dialog');
    await expect(dialog).toHaveScreenshot(`demo-${scenario.locale}-${scenario.theme}-initial.png`);
    await dialog.locator('button[type="submit"]').click();
    await expect(dialog).toHaveScreenshot(
      `demo-${scenario.locale}-${scenario.theme}-validation.png`,
    );
  });
}
