/* * Copyright OpenSearch Contributors * SPDX-License-Identifier: Apache-2.0 */ import { fireEvent, render } from '@testing-library/react'; import React from 'react'; import { mainStateMock } from '../../../../test/mocks/serviceMock'; import { MainContext } from '../../Main/Main'; import { CreateSESSenderForm } from '../components/forms/CreateSESSenderForm'; describe(' spec', () => { it('renders the component', () => { const setSenderName = jest.fn(); const setEmail = jest.fn(); const setRoleArn = jest.fn(); const setAwsRegion = jest.fn(); const setInputErrors = jest.fn(); const inputErrors = { senderName: [], email: [], awsRegion: [], roleArn: [], }; const utils = render( ); expect(utils.container.firstChild).toMatchSnapshot(); const nameInput = utils.getByTestId('create-ses-sender-form-name-input'); fireEvent.change(nameInput, { target: { value: 'test name' } }); fireEvent.blur(nameInput); expect(setSenderName).toBeCalledWith('test name'); const emailInput = utils.getByTestId('create-ses-sender-form-email-input'); fireEvent.change(emailInput, { target: { value: 'test@email.com' } }); fireEvent.blur(emailInput); expect(setEmail).toBeCalledWith('test@email.com'); const roleArnInput = utils.getByTestId( 'create-ses-sender-form-role-arn-input' ); fireEvent.change(roleArnInput, { target: { value: 'test-role' } }); fireEvent.blur(roleArnInput); expect(setRoleArn).toBeCalledWith('test-role'); const awsRegionInput = utils.getByTestId( 'create-ses-sender-form-aws-region-input' ); fireEvent.change(awsRegionInput, { target: { value: 'us-east-2' } }); fireEvent.blur(awsRegionInput); expect(setAwsRegion).toBeCalledWith('us-east-2'); }); it('renders errors', () => { const setSenderName = jest.fn(); const setEmail = jest.fn(); const setRoleArn = jest.fn(); const setAwsRegion = jest.fn(); const setInputErrors = jest.fn(); const inputErrors = { senderName: ['test error'], email: ['test error'], awsRegion: ['test error'], roleArn: ['test error'], }; const utils = render( ); expect(utils.container.firstChild).toMatchSnapshot(); }); });