/*
* Copyright OpenSearch Contributors
* SPDX-License-Identifier: Apache-2.0
*/
import React from "react";
import "@testing-library/jest-dom/extend-expect";
import { browserServicesMock, coreServicesMock } from "../../../test/mocks";
import { CoreServicesContext } from "../../components/core_services";
import { ServicesContext } from "../../services";
import { BrowserServices } from "../../models/interfaces";
import { ModalProvider } from "../../components/Modal";
import { CoreStart } from "opensearch-dashboards/public";
import { render, fireEvent, waitFor } from "@testing-library/react";
import ClearCacheModal, { ClearCacheModalProps } from "./ClearCacheModal";
import { INDEX_OP_TARGET_TYPE } from "../../utils/constants";
import { act } from "react-dom/test-utils";
function renderWithRouter(
coreServicesContext: CoreStart | null,
browserServicesContext: BrowserServices | null,
props: ClearCacheModalProps
) {
return {
...render(
),
};
}
describe(" spec", () => {
it("renders the component", async () => {
renderWithRouter(coreServicesMock, browserServicesMock, {
selectedItems: [],
visible: true,
type: INDEX_OP_TARGET_TYPE.INDEX,
onClose: () => {},
});
await act(async () => {});
expect(document.body.children).toMatchSnapshot();
});
it("calls close when cancel button clicked", async () => {
const onClose = jest.fn();
const { getByTestId, getByText } = renderWithRouter(coreServicesMock, browserServicesMock, {
selectedItems: [],
visible: true,
type: INDEX_OP_TARGET_TYPE.INDEX,
onClose: onClose,
});
await waitFor(() => {
expect(getByText("Cache will be cleared for all open indexes.")).toBeInTheDocument();
});
fireEvent.click(getByTestId("ClearCacheCancelButton"));
expect(onClose).toHaveBeenCalled();
});
});