From b98dd5e6530b623b22cf7f36fcae0e3f2a3bd349 Mon Sep 17 00:00:00 2001 From: PelayoFelgueroso Date: Fri, 25 Sep 2026 12:08:51 +0200 Subject: [PATCH] fix popover las test --- packages/lib/src/popover/Popover.test.tsx | 40 +++++++++++------------ 1 file changed, 20 insertions(+), 20 deletions(-) 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(); }); });