diff --git a/packages/lib/src/popover/Popover.test.tsx b/packages/lib/src/popover/Popover.test.tsx
index 774e550af..ef3ecbd11 100644
--- a/packages/lib/src/popover/Popover.test.tsx
+++ b/packages/lib/src/popover/Popover.test.tsx
@@ -1,13 +1,11 @@
-import { render, waitFor } from "@testing-library/react";
+import { act, fireEvent, render, waitFor } from "@testing-library/react";
import DxcPopover from "./Popover";
-import userEvent from "@testing-library/user-event";
-import DxcButton from "../button/Button";
describe("Popover component tests", () => {
test("The component renders properly onClick", () => {
const { getByText } = render(Popover content}>Trigger);
expect(getByText("Trigger")).toBeTruthy();
- userEvent.click(getByText("Trigger"));
+ fireEvent.click(getByText("Trigger"));
expect(getByText("Popover content")).toBeTruthy();
});
@@ -19,7 +17,7 @@ describe("Popover component tests", () => {
);
expect(queryByText("Popover content")).toBeFalsy();
expect(getByText("Trigger")).toBeTruthy();
- userEvent.hover(getByText("Trigger"));
+ fireEvent.mouseEnter(getByText("Trigger"));
expect(getByText("Popover content")).toBeTruthy();
});
@@ -32,7 +30,7 @@ describe("Popover component tests", () => {
);
expect(queryByText("Popover content")).toBeFalsy();
expect(getByText("Trigger")).toBeTruthy();
- userEvent.click(getByText("Trigger"));
+ fireEvent.click(getByText("Trigger"));
expect(onOpen).toHaveBeenCalled();
});
@@ -45,23 +43,22 @@ describe("Popover component tests", () => {
);
expect(queryByText("Popover content")).toBeFalsy();
expect(getByText("Trigger")).toBeTruthy();
- userEvent.hover(getByText("Trigger"));
+ fireEvent.mouseEnter(getByText("Trigger"));
expect(onOpen).toHaveBeenCalled();
});
- test("The component manages events correctly when controlled click onClose", () => {
+ test("The component manages events correctly when controlled click onClose", async () => {
const onClose = jest.fn();
const { getByText, queryByText } = render(
<>
Popover content}>
Trigger
-
>
);
expect(queryByText("Trigger")).toBeTruthy();
- expect(getByText("Popover content")).toBeTruthy();
- userEvent.click(getByText("Focus out"));
+ await waitFor(() => expect(getByText("Popover content")).toBeTruthy());
+ fireEvent.pointerDown(document.body);
expect(onClose).toHaveBeenCalled();
});
@@ -74,11 +71,11 @@ describe("Popover component tests", () => {
);
expect(queryByText("Trigger")).toBeTruthy();
expect(getByText("Popover content")).toBeTruthy();
- userEvent.unhover(getByText("Trigger"));
+ fireEvent.mouseLeave(getByText("Trigger"));
expect(onClose).toHaveBeenCalled();
});
- test("The component manages onOpenAutoFocus", () => {
+ test("The component manages onOpenAutoFocus", async () => {
const autoFocusEvent = jest.fn();
const { getByText, queryByText } = render(
Popover content}>
@@ -86,12 +83,13 @@ describe("Popover component tests", () => {
);
expect(queryByText("Trigger")).toBeTruthy();
- userEvent.click(getByText("Trigger"));
- expect(getByText("Popover content")).toBeTruthy();
+ fireEvent.click(getByText("Trigger"));
+ await waitFor(() => expect(getByText("Popover content")).toBeTruthy());
expect(autoFocusEvent).toHaveBeenCalled();
});
test("The component manages onCloseAutoFocus", async () => {
+ jest.useFakeTimers();
const autoFocusEvent = jest.fn();
const { getByText, queryByText } = render(
Popover content}>
@@ -99,11 +97,13 @@ describe("Popover component tests", () => {
);
expect(queryByText("Trigger")).toBeTruthy();
- userEvent.click(getByText("Trigger"));
- expect(getByText("Popover content")).toBeTruthy();
- userEvent.keyboard("{Escape}");
- await waitFor(() => {
- expect(autoFocusEvent).toHaveBeenCalled();
+ fireEvent.click(getByText("Trigger"));
+ await waitFor(() => expect(getByText("Popover content")).toBeTruthy());
+ fireEvent.keyDown(document.body, { key: "Escape", code: "Escape" });
+ act(() => {
+ jest.advanceTimersByTime(0);
});
+ expect(autoFocusEvent).toHaveBeenCalled();
+ jest.useRealTimers();
});
});