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

for (const scenario of [
  { locale: 'en', theme: 'light', width: 1440, height: 1200 },
  { locale: 'fr', theme: 'dark', width: 1024, height: 1200 },
  { locale: 'ar', theme: 'dark', width: 390, height: 1200 },
] as const) {
  test(`${scenario.locale}-${scenario.theme} component matrix`, async ({ page }) => {
    test.skip(test.info().project.name !== 'chromium', 'Canonical visual baselines use Chromium.');
    await page.addInitScript(
      (theme) => localStorage.setItem('hpc.theme.preference', theme),
      scenario.theme,
    );
    await page.setViewportSize({ width: scenario.width, height: scenario.height });
    await page.goto(`/${scenario.locale}/${scenario.theme}/component-lab`);
    await expect(page).toHaveScreenshot(
      `component-system-${scenario.locale}-${scenario.theme}-${scenario.width}.png`,
      { fullPage: true },
    );
  });
}
