/*
* SPDX-License-Identifier: Apache-2.0
*
* The OpenSearch Contributors require contributions made to
* this file be licensed under the Apache-2.0 license or a
* compatible open source license.
*
* Modifications Copyright OpenSearch Contributors. See
* GitHub history for details.
*/
import React from 'react';
import { render, fireEvent } from '@testing-library/react';
import NameAndDescription from '../NameAndDescription';
import { Formik } from 'formik';
describe(' spec', () => {
test('renders the component', () => {
const { container } = render(
{() => (
)}
);
expect(container.firstChild).toMatchSnapshot();
});
test('shows error for detector name input when toggling focus/blur', async () => {
const handleValidateName = jest.fn().mockImplementationOnce(() => {
return 'Required';
});
const { queryByText, findByText, getByPlaceholderText } = render(
{() => (
)}
);
expect(queryByText('Required')).toBeNull();
fireEvent.focus(getByPlaceholderText('Enter detector name'));
fireEvent.blur(getByPlaceholderText('Enter detector name'));
expect(handleValidateName).toHaveBeenCalledWith('');
expect(handleValidateName).toHaveBeenCalledTimes(1);
expect(findByText('Required')).not.toBeNull();
});
test('shows error for detector description input when toggling focus/bur', async () => {
const { queryByText, findByText, getByPlaceholderText } = render(
{() => (
)}
);
expect(queryByText('Required')).toBeNull();
fireEvent.focus(getByPlaceholderText('Describe the detector'));
fireEvent.blur(getByPlaceholderText('Describe the detector'));
expect(findByText('Required')).not.toBeNull();
});
});