/* * Copyright OpenSearch Contributors * SPDX-License-Identifier: Apache-2.0 */ import React from "react"; import { render, waitFor } from "@testing-library/react"; import SimplePopover, { loopToGetPath } from "./SimplePopover"; import userEvent from "@testing-library/user-event"; describe(" spec", () => { it("renders the component", () => { render(123} />); expect(document.body.children).toMatchSnapshot(); }); it("return [] when element is null", () => { expect(loopToGetPath(null)).toEqual([]); }); it("render the component with hover", async () => { const { getByTestId, queryByText } = render( <> button}> content in popover
another element
); userEvent.hover(getByTestId("test")); await waitFor(() => { expect(queryByText("content in popover")).not.toBeNull(); }); userEvent.hover(getByTestId("anotherElement")); await waitFor(() => { expect(queryByText("content in popover")).toBeNull(); }); }); it("render the component with click", async () => { const { getByTestId, queryByText } = render( button}>content in popover ); userEvent.click(getByTestId("test")); await waitFor(() => { expect(queryByText("content in popover")).not.toBeNull(); }); userEvent.click(document.body); await waitFor(() => { expect(queryByText("content in popover")).toBeNull(); }); }); });