/*
* 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();
});
});
});