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'));
});
});