Skip to content

Commit a77093e

Browse files
committed
Add initial popover tests
1 parent 3524202 commit a77093e

File tree

1 file changed

+33
-1
lines changed

1 file changed

+33
-1
lines changed

packages/kit-headless/src/components/popover/popover.test.ts

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ test('@Visual diff', async ({ page }) => {
2121
});
2222

2323
test.describe('Mouse Behavior', () => {
24-
test(`GIVEN a closed popover
24+
test(`GIVEN a closed hero popover
2525
WHEN clicking on the trigger
2626
THEN the popover should be opened `, async ({ page }) => {
2727
const { driver: d } = await setup(page, 'hero');
@@ -31,4 +31,36 @@ test.describe('Mouse Behavior', () => {
3131

3232
await expect(d.getPopover()).toBeVisible();
3333
});
34+
35+
test(`GIVEN an open hero popover
36+
WHEN clicking elsewhere on the page
37+
THEN the popover should close`, async ({ page }) => {
38+
const { driver: d } = await setup(page, 'hero');
39+
40+
await expect(d.getPopover()).toBeHidden();
41+
await d.getTrigger().click();
42+
43+
await expect(d.getPopover()).toBeVisible();
44+
45+
await page.click('body', { position: { x: 0, y: 0 } });
46+
await page.click('body', { position: { x: 0, y: 0 } });
47+
48+
await expect(d.getPopover()).toBeHidden();
49+
});
50+
});
51+
52+
test.describe('Keyboard Behavior', () => {
53+
test(`GIVEN a programmatic popover with a programmatic trigger
54+
WHEN focusing on the button and pressing the 'o' key
55+
THEN the popover should open`, async ({ page }) => {
56+
const { driver: d } = await setup(page, 'programmatic');
57+
58+
await expect(d.getPopover()).toBeHidden();
59+
60+
// Using `page` here because driver is scoped to the popover
61+
await page.getByRole('button', { name: "Focus me and press the 'o'" }).focus();
62+
await page.keyboard.type('o');
63+
64+
await expect(d.getPopover()).toBeVisible();
65+
});
3466
});

0 commit comments

Comments
 (0)