mirror of
https://github.com/aaronpo97/the-biergarten-app.git
synced 2026-05-31 17:53:59 +00:00
50 lines
2.2 KiB
TypeScript
50 lines
2.2 KiB
TypeScript
import { expect, test } from '@playwright/test';
|
|
|
|
const themes = [
|
|
'biergarten-lager',
|
|
'biergarten-stout',
|
|
'biergarten-cassis',
|
|
'biergarten-weizen',
|
|
] as const;
|
|
|
|
test.describe('storybook component coverage', () => {
|
|
for (const theme of themes) {
|
|
test(`SubmitButton idle renders in ${theme}`, async ({ page }) => {
|
|
await page.goto(`/iframe.html?id=forms-submitbutton--idle&globals=theme:${theme}`);
|
|
await expect(page.getByRole('button', { name: /save changes/i })).toBeVisible();
|
|
await expect(page.locator(`[data-theme=\"${theme}\"]`)).toBeVisible();
|
|
});
|
|
|
|
test(`FormField error renders in ${theme}`, async ({ page }) => {
|
|
await page.goto(`/iframe.html?id=forms-formfield--with-error&globals=theme:${theme}`);
|
|
await expect(page.getByLabel('Email address')).toBeVisible();
|
|
await expect(page.getByText(/valid email address/i)).toBeVisible();
|
|
await expect(page.locator(`[data-theme=\"${theme}\"]`)).toBeVisible();
|
|
});
|
|
|
|
test(`Navbar guest renders in ${theme}`, async ({ page }) => {
|
|
await page.goto(`/iframe.html?id=navigation-navbar--guest&globals=theme:${theme}`);
|
|
await expect(page.getByRole('link', { name: /the biergarten app/i })).toBeVisible();
|
|
await expect(page.getByRole('link', { name: /^login$/i })).toBeVisible();
|
|
await expect(page.locator(`[data-theme=\"${theme}\"]`)).toBeVisible();
|
|
});
|
|
}
|
|
|
|
test('Navbar authenticated state renders', async ({ page }) => {
|
|
await page.goto(
|
|
`/iframe.html?id=navigation-navbar--authenticated&globals=theme:biergarten-stout`,
|
|
);
|
|
await expect(page.getByRole('button', { name: /hans/i })).toBeVisible();
|
|
});
|
|
|
|
test('Theme gallery shows all themes', async ({ page }) => {
|
|
await page.goto(
|
|
`/iframe.html?id=themes-biergarten-themes--gallery&globals=theme:biergarten-lager`,
|
|
);
|
|
await expect(page.getByRole('heading', { name: 'Biergarten Lager' })).toBeVisible();
|
|
await expect(page.getByRole('heading', { name: 'Biergarten Stout' })).toBeVisible();
|
|
await expect(page.getByRole('heading', { name: 'Biergarten Cassis' })).toBeVisible();
|
|
await expect(page.getByRole('heading', { name: 'Biergarten Weizen' })).toBeVisible();
|
|
});
|
|
});
|