/*
* Copyright OpenSearch Contributors
* SPDX-License-Identifier: Apache-2.0
*/
import { render, waitFor } from "@testing-library/react";
import React from "react";
import ReindexAdvancedOptions from "./ReindexAdvancedOptions";
import { coreServicesMock } from "../../../../../test/mocks";
import { CoreServicesContext } from "../../../../components/core_services";
describe(" spec", () => {
it("renders the component", async () => {
const component = render(
{}}
selectedPipelines={[]}
onSelectedPipelinesChange={() => {}}
ignoreConflicts={true}
onIgnoreConflictsChange={() => {}}
getAllPipelines={async () => [{ label: "pipeline" }]}
reindexUniqueDocuments={true}
onReindexUniqueDocumentsChange={() => {}}
/>
);
// wait for one tick
await waitFor(() => {});
expect(component).toMatchSnapshot();
});
it("renders the component with slice error", async () => {
const { findByText } = render(
{}}
sliceErr={"slice must be positive integer or auto"}
selectedPipelines={[]}
onSelectedPipelinesChange={() => {}}
ignoreConflicts={false}
onIgnoreConflictsChange={() => {}}
getAllPipelines={async () => [{ label: "pipeline" }]}
reindexUniqueDocuments={true}
onReindexUniqueDocumentsChange={() => {}}
/>
);
// wait for one tick
await waitFor(() => {});
expect(findByText("slice must be positive integer or auto")).not.toBeNull();
});
it("get pipeline error", async () => {
render(
{}}
selectedPipelines={[]}
onSelectedPipelinesChange={() => {}}
ignoreConflicts={false}
onIgnoreConflictsChange={() => {}}
getAllPipelines={async () => Promise.reject("service not available")}
reindexUniqueDocuments={true}
onReindexUniqueDocumentsChange={() => {}}
/>
);
// wait for one tick
await waitFor(() => {});
expect(coreServicesMock.notifications.toasts.addDanger).toHaveBeenCalledTimes(1);
});
it("get pipeline api been called", async () => {
const getPipeline = jest.fn().mockResolvedValue([{ label: "test1" }]);
render(
{}}
selectedPipelines={[]}
onSelectedPipelinesChange={() => {}}
ignoreConflicts={false}
onIgnoreConflictsChange={() => {}}
getAllPipelines={getPipeline}
reindexUniqueDocuments={true}
onReindexUniqueDocumentsChange={() => {}}
/>
);
// wait for one tick
await waitFor(() => {});
expect(getPipeline).toBeCalledTimes(1);
});
});