import React from 'react'; import renderWithTheme from '../../../../testUtils/renderWithTheme'; import * as formField from '..'; import Input from '../../../Input'; const FormField = formField.default; const { getValidateSuffixElement, getValidatedChildren } = formField; describe('getValidateSuffixElement', () => { it('returns correct input suffix icon along with validate icon', () => { const input = ; const { getByTestId, container } = renderWithTheme( <>{getValidateSuffixElement(input, 'success')} ); expect(getByTestId('validate-suffix-wrapper')).toBeInTheDocument(); expect(container).toContainElement(getByTestId('input-suffix-icon')); expect(container).toContainElement(getByTestId('validate-icon')); }); it('returns original suffix along with validate icon', () => { const suffix = suffix; const input = ; const { getByTestId, getByText, container } = renderWithTheme( <>{getValidateSuffixElement(input, 'success')} ); expect(getByTestId('validate-suffix-wrapper')).toBeInTheDocument(); expect(container).toContainElement(getByText('suffix')); expect(container).toContainElement(getByTestId('validate-icon')); }); }); describe('getValidatedChildren', () => { it('returns children itself', () => { const children = ; expect(getValidatedChildren(children)).toBe(children); }); it('returns input with a validate suffix', () => { const children = ; const suffix = validate icon; jest .spyOn(formField, 'getValidateSuffixElement') .mockImplementation(() => suffix); expect(getValidatedChildren(children, 'success')).toStrictEqual( ); }); it('returns text area with a wrapper and validate suffix', () => { const children = ; const { getByTestId, container } = renderWithTheme( <>{getValidatedChildren(children, 'warning')} ); expect(getByTestId('text-area-field-wrapper')).toBeInTheDocument(); expect(container).toContainElement(getByTestId('text-area')); expect(container).toContainElement(getByTestId('validate-icon')); }); }); describe('FormField', () => { it('returns FieldWrapper and validated children', () => { jest .spyOn(formField, 'getValidatedChildren') .mockImplementation(() => mocked field); const { getByTestId, getByText, container } = renderWithTheme( ); expect(getByTestId('form-field')).toBeInTheDocument(); expect(container).toContainElement(getByText('mocked field')); }); });