import React from 'react' import Form, { HandleForm } from '.' import { render, cleanup, fireEvent } from '@testing-library/react' afterEach(cleanup) describe('Form component', () => { it('should get the formData and formElement onSubmit and onChange', () => { let formData: { [k: string]: any } = {} let formElement: any = null const handleSubmitChange: HandleForm = (data, element) => { formData = data formElement = element } const formComponent = render(
) const inputForm = formComponent.getByTestId( 'input-form' ) as HTMLInputElement const buttonSubmit = formComponent.getByTestId('button-submit') const text = 'some random text' fireEvent.change(inputForm, { target: { value: text } }) expect(formData.inputName).toEqual(text) expect(formElement instanceof HTMLFormElement).toBeTruthy() formData = {} formElement = null fireEvent.click(buttonSubmit) expect(Object.keys(formData).length).toEqual(1) expect(formData.inputName).toEqual(text) expect(formElement instanceof HTMLFormElement).toBeTruthy() }) })