/* * Copyright OpenSearch Contributors * SPDX-License-Identifier: Apache-2.0 */ import React from "react"; import "@testing-library/jest-dom/extend-expect"; import { render, waitFor } from "@testing-library/react"; import SwitchableEditor from "./index"; import userEvent from "@testing-library/user-event"; describe(" spec", () => { it("renders the component", async () => { const onChangeMock = jest.fn(); const { findByText, getByText, queryByText } = render( ); expect(document.body.children).toMatchSnapshot(); userEvent.click(document.querySelector(".euiSwitch__button") as HTMLElement); await findByText("The original value"); expect(document.body.children).toMatchSnapshot(); await findByText("The original value"); const textarea = document.querySelector('[data-test-subj="jsonEditor-valueDisplay"]') as HTMLElement; userEvent.type(textarea, "123"); userEvent.click(document.body); await findByText(/Your input does not match the validation of json format/, undefined, { timeout: 3000, }); userEvent.clear(textarea); userEvent.paste(textarea, `{ "name": "test" }`); userEvent.click(document.body); await waitFor(() => {}); expect(onChangeMock).toBeCalledWith(`{ "name": "test" }`); }); });