Skip to content

Commit 7a9a76d

Browse files
committed
added first popover test
1 parent e614c38 commit 7a9a76d

File tree

3 files changed

+55
-1
lines changed

3 files changed

+55
-1
lines changed

apps/component-tests/tailwind.config.cjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ const plugin = require('tailwindcss/plugin');
66
module.exports = {
77
content: [
88
join(__dirname, 'src/**/*.{js,ts,jsx,tsx,mdx}'),
9-
join(__dirname, '../../packages/kit-tailwind/src/**/*.{js,ts,jsx,tsx,mdx}'),
9+
join(__dirname, '../website/src/**/*.{js,ts,jsx,tsx,mdx}'),
1010
join(__dirname, '../../packages/kit-styled/src/**/*.{js,ts,jsx,tsx,mdx}'),
1111
],
1212
plugins: [
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { type Locator, type Page } from '@playwright/test';
2+
3+
export type DriverLocator = Locator | Page;
4+
5+
export function createTestDriver<T extends DriverLocator>(rootLocator: T) {
6+
const getPopover = () => {
7+
return rootLocator.locator('[popover]');
8+
};
9+
10+
const getTrigger = () => {
11+
return rootLocator.locator('[popovertarget]');
12+
};
13+
14+
return {
15+
...rootLocator,
16+
locator: rootLocator,
17+
getPopover,
18+
getTrigger,
19+
};
20+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import { expect, test, type Page } from '@playwright/test';
2+
import { createTestDriver } from './popover.driver';
3+
4+
async function setup(page: Page, exampleName: string) {
5+
await page.goto(`/headless/popover/${exampleName}`);
6+
7+
const driver = createTestDriver(page);
8+
9+
return {
10+
driver,
11+
};
12+
}
13+
14+
test('@Visual diff', async ({ page }) => {
15+
const { driver: d } = await setup(page, 'hero');
16+
await expect(page).toHaveScreenshot('closed popover.png');
17+
18+
await d.getTrigger().click();
19+
20+
await expect(page).toHaveScreenshot('opened popover.png');
21+
});
22+
23+
test.describe('Mouse Behavior', () => {
24+
test(`GIVEN a popover
25+
WHEN clicking on the trigger
26+
THEN the popover should be opened `, async ({ page }) => {
27+
const { driver: d } = await setup(page, 'hero');
28+
29+
await expect(d.getPopover()).toBeHidden();
30+
await d.getTrigger().click();
31+
32+
await expect(d.getPopover()).toBeVisible();
33+
});
34+
});

0 commit comments

Comments
 (0)