/* * Copyright OpenSearch Contributors * SPDX-License-Identifier: Apache-2.0 */ import React from "react"; import "@testing-library/jest-dom/extend-expect"; import { render, screen, cleanup } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; import SnapshotIndicesInput from "./SnapshotIndicesInput"; const testProps = { onIndicesSelectionChange: jest.fn(), getIndexOptions: jest.fn(), onCreateOption: jest.fn(), isClearable: true }; afterEach(() => { cleanup(); }); describe("SnapshotIndicesInput component", () => { it("renders without error", () => { const { container } = render( ) expect(screen.getByRole("textbox")).toBeInTheDocument(); expect(container).toMatchSnapshot(); }); it("accepts user input", () => { render( ); userEvent.type(screen.getByRole("textbox"), "test*{enter}"); expect(testProps.onCreateOption).toBeCalledTimes(1); }); it("allows user to select indices to restore", async () => { render( ); userEvent.click(screen.getByRole("textbox")); expect(screen.getByText("test_index_1")).toBeInTheDocument(); expect(screen.getByText("test_index_2")).toBeInTheDocument(); userEvent.click(screen.getByText("test_index_1")); userEvent.click(screen.getByText("test_index_2")); expect(testProps.onIndicesSelectionChange).toBeCalledTimes(2); }); });