Skip to content

Commit

Permalink
feat(popover): popover focus test
Browse files Browse the repository at this point in the history
  • Loading branch information
wingkwong committed Jun 6, 2024
1 parent 264a6a6 commit 57b7aa8
Showing 1 changed file with 59 additions and 0 deletions.
59 changes: 59 additions & 0 deletions packages/components/popover/__tests__/popover.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -213,4 +213,63 @@ describe("Popover", () => {
// assert that the second popover is open
expect(popover2).toHaveAttribute("aria-expanded", "true");
});

it("should focus on dialog when opened", async () => {
const wrapper = render(
<Popover>
<PopoverTrigger>
<Button disableRipple data-testid="trigger-test">
Open popover
</Button>
</PopoverTrigger>
<PopoverContent>
<p>This is the content of the popover.</p>
</PopoverContent>
</Popover>,
);

const trigger = wrapper.getByTestId("trigger-test");

// open popover
await act(async () => {
await userEvent.click(trigger);
});

const {getByRole} = wrapper;

let dialog = getByRole("dialog");

// assert that the focus is on the dialog
expect(dialog).toHaveFocus();
});

it("should restore focus on trigger when closed", async () => {
const wrapper = render(
<Popover>
<PopoverTrigger>
<Button disableRipple data-testid="trigger-test">
Open popover
</Button>
</PopoverTrigger>
<PopoverContent>
<p>This is the content of the popover.</p>
</PopoverContent>
</Popover>,
);

const trigger = wrapper.getByTestId("trigger-test");

// open popover
await act(async () => {
await userEvent.click(trigger);
});

// close popover
await act(async () => {
await userEvent.click(trigger);
});

// assert that the focus is restored back to trigger
expect(trigger).toHaveFocus();
});
});

0 comments on commit 57b7aa8

Please sign in to comment.