UNPKG

grommet

Version:

focus on the essential experience

78 lines (76 loc) 2.42 kB
import React from 'react'; import renderer from 'react-test-renderer'; import { cleanup, render, fireEvent } from 'react-testing-library'; import 'jest-styled-components'; import { Grommet } from '../../Grommet'; import { Form } from '..'; import { FormField } from '../../FormField'; import { Button } from '../../Button'; describe('Form', function () { afterEach(cleanup); test('empty', function () { var component = renderer.create(React.createElement(Grommet, null, React.createElement(Form, null))); var tree = component.toJSON(); expect(tree).toMatchSnapshot(); }); test('with field', function () { var component = renderer.create(React.createElement(Grommet, null, React.createElement(Form, null, React.createElement(FormField, { name: "test" })))); var tree = component.toJSON(); expect(tree).toMatchSnapshot(); }); test('update', function () { var validate = jest.fn().mockReturnValueOnce('too short').mockReturnValueOnce(undefined); var onSubmit = jest.fn(); var _render = render(React.createElement(Grommet, null, React.createElement(Form, { onSubmit: onSubmit }, React.createElement(FormField, { name: "test", required: true, validate: validate, placeholder: "test input" }), React.createElement(FormField, { name: "test2", placeholder: "test-2 input" }), React.createElement(Button, { type: "submit", primary: true, label: "Submit" })))), getByPlaceholderText = _render.getByPlaceholderText, getByText = _render.getByText, container = _render.container; expect(container.firstChild).toMatchSnapshot(); fireEvent.change(getByPlaceholderText('test input'), { target: { value: 'v' } }); fireEvent.click(getByText('Submit')); expect(validate).toBeCalledWith('v', { test: 'v' }); fireEvent.change(getByPlaceholderText('test input'), { target: { value: 'value' } }); fireEvent.change(getByPlaceholderText('test-2 input'), { target: { value: 'value-2' } }); fireEvent.click(getByText('Submit')); expect(validate).toBeCalledWith('value', { test: 'value', test2: 'value-2' }); expect(onSubmit).toBeCalledWith(expect.objectContaining({ value: { test: 'value', test2: 'value-2' } })); }); });