import React from 'react'; import { fireEvent, render } from '@testing-library/react-native'; import { authenticatorTextUtil } from '@aws-amplify/ui'; import { ConfirmVerifyUser } from '..'; const { getAccountRecoveryInfoText, getSkipText, getSubmitText, getSubmittingText, } = authenticatorTextUtil; const props = { fields: [], FormFields: ConfirmVerifyUser.FormFields, Footer: ConfirmVerifyUser.Footer, handleBlur: jest.fn(), handleChange: jest.fn(), handleSubmit: jest.fn(), hasValidationErrors: false, Header: ConfirmVerifyUser.Header, isPending: false, skipVerification: jest.fn(), }; describe('ConfirmVerifyUser', () => { it('renders as expected', () => { const { toJSON, getByRole, getByText } = render( ); expect(toJSON()).toMatchSnapshot(); expect(getByRole('header')).toBeDefined(); expect(getByText(getAccountRecoveryInfoText())).toBeDefined(); expect(getByText(getSubmitText())).toBeDefined(); expect(getByText(getSkipText())).toBeDefined(); }); it('renders as expected with errors', () => { const error = 'Something went wrong'; const { toJSON, getByRole, getByText } = render( ); expect(toJSON()).toMatchSnapshot(); expect(getByRole('alert')).toBeDefined(); expect(getByText(error)).toBeDefined(); }); it('handles skip verification button', () => { const skipVerificationMock = jest.fn(); const { getByText } = render( ); const button = getByText(getSkipText()); fireEvent.press(button); expect(skipVerificationMock).toBeCalledTimes(1); }); it('renders as expected when isPending is true', () => { const { toJSON, getByText } = render( ); expect(toJSON()).toMatchSnapshot(); expect(getByText(getSubmittingText())).toBeDefined(); }); });