phase 16 implementation
This commit is contained in:
@@ -6,8 +6,9 @@ for (const scenario of [
|
||||
{ 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('rdg-theme-preference', theme),
|
||||
(theme) => localStorage.setItem('hpc.theme.preference', theme),
|
||||
scenario.theme,
|
||||
);
|
||||
await page.setViewportSize({ width: scenario.width, height: scenario.height });
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
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}`);
|
||||
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`,
|
||||
);
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user