Assert checkbox label click event updates checkbox value

This commit is contained in:
Marliana Lara
2021-01-21 12:48:42 -05:00
parent 6b7d712f9f
commit ee59ac957a

View File

@@ -1,5 +1,7 @@
import React from 'react'; import React from 'react';
import { mount } from 'enzyme';
import { Formik } from 'formik'; import { Formik } from 'formik';
import { I18nProvider } from '@lingui/react';
import { act } from 'react-dom/test-utils'; import { act } from 'react-dom/test-utils';
import { mountWithContexts } from '../../../../testUtils/enzymeHelpers'; import { mountWithContexts } from '../../../../testUtils/enzymeHelpers';
import { import {
@@ -12,28 +14,38 @@ import {
describe('Setting form fields', () => { describe('Setting form fields', () => {
test('BooleanField renders the expected content', async () => { test('BooleanField renders the expected content', async () => {
const wrapper = mountWithContexts( const outerNode = document.createElement('div');
<Formik document.body.appendChild(outerNode);
initialValues={{ const wrapper = mount(
boolean: true, <I18nProvider>
}} <Formik
> initialValues={{
{() => ( boolean: true,
<BooleanField }}
name="boolean" >
config={{ {() => (
label: 'test', <BooleanField
help_text: 'test', name="boolean"
}} config={{
/> label: 'test',
)} help_text: 'test',
</Formik> }}
/>
)}
</Formik>
</I18nProvider>,
{
attachTo: outerNode,
}
); );
expect(wrapper.find('Switch')).toHaveLength(1); expect(wrapper.find('Switch')).toHaveLength(1);
expect(wrapper.find('Switch').prop('isChecked')).toBe(true); expect(wrapper.find('Switch').prop('isChecked')).toBe(true);
expect(wrapper.find('Switch').prop('isDisabled')).toBe(false); expect(wrapper.find('Switch').prop('isDisabled')).toBe(false);
await act(async () => { await act(async () => {
wrapper.find('Switch').invoke('onChange')(false); wrapper
.find('Switch label')
.instance()
.dispatchEvent(new Event('click'));
}); });
wrapper.update(); wrapper.update();
expect(wrapper.find('Switch').prop('isChecked')).toBe(false); expect(wrapper.find('Switch').prop('isChecked')).toBe(false);