import React from 'react'; import {mountWithIntl} from '../../helpers/intl-helpers.jsx'; import FormikInput from '../../../src/components/formik-forms/formik-input.jsx'; import {Formik} from 'formik'; describe('FormikInput', () => { test('No validation message with empty error, empty toolTip', () => { const component = mountWithIntl( <Formik> <FormikInput error="" toolTip="" /> </Formik> ); expect(component.find('ValidationMessage').exists()).toEqual(false); expect(component.find('div.validation-error').exists()).toEqual(false); expect(component.find('div.validation-info').exists()).toEqual(false); }); test('No validation message with false error, false toolTip', () => { const component = mountWithIntl( <Formik> <FormikInput error={false} toolTip={false} /> </Formik> ); expect(component.find('ValidationMessage').exists()).toEqual(false); expect(component.find('div.validation-error').exists()).toEqual(false); expect(component.find('div.validation-info').exists()).toEqual(false); }); test('No validation message with nonexistent error or toolTip', () => { const component = mountWithIntl( <Formik> <FormikInput /> </Formik> ); expect(component.find('ValidationMessage').exists()).toEqual(false); expect(component.find('div.validation-error').exists()).toEqual(false); expect(component.find('div.validation-info').exists()).toEqual(false); }); test('Validation message shown when error given', () => { const component = mountWithIntl( <Formik> <FormikInput error="There was an error" /> </Formik> ); expect(component.find('ValidationMessage').exists()).toEqual(true); expect(component.find('div.validation-error').exists()).toEqual(true); expect(component.find('div.validation-info').exists()).toEqual(false); }); test('Tooltip shown when toolTip given', () => { const component = mountWithIntl( <Formik> <FormikInput toolTip="Have fun out there!" /> </Formik> ); expect(component.find('ValidationMessage').exists()).toEqual(true); expect(component.find('div.validation-error').exists()).toEqual(false); expect(component.find('div.validation-info').exists()).toEqual(true); }); test('If both error and toolTip messages, error takes precedence', () => { const component = mountWithIntl( <Formik> <FormikInput error="There was an error" toolTip="Have fun out there!" /> </Formik> ); expect(component.find('ValidationMessage').exists()).toEqual(true); expect(component.find('div.validation-error').exists()).toEqual(true); expect(component.find('div.validation-info').exists()).toEqual(false); }); });