UNPKG

react-form-controlled

Version:

Intuitive react forms for building powerful applications

138 lines (120 loc) 3.32 kB
import React from 'react'; import { mount } from 'enzyme'; import Form, { Remove, Down, Up } from '../src'; describe('Up', () => { it('should be able to move up item in array', done => { const value = { items: [1, 2, 3] }; function onChange(state) { expect(state.items).toEqual([1, 3, 2]); done(); } const wrapper = mount(React.createElement( Form, { value: value, onChange: onChange }, React.createElement( 'fieldset', { name: 'items' }, React.createElement('input', { name: '.' }), React.createElement(Up, { render: ({ onClick }) => React.createElement( 'button', { type: 'button', onClick: onClick }, 'Up' ) }) ) )); expect(wrapper.find('input').first().props().value).toBe(1); wrapper.find('button').last().simulate('click'); }); }); describe('Down', () => { it('should be able to move down item in array', done => { const value = { items: [1, 2, 3] }; function onChange(state) { expect(state.items).toEqual([2, 1, 3]); done(); } const wrapper = mount(React.createElement( Form, { value: value, onChange: onChange }, React.createElement( 'fieldset', { name: 'items' }, React.createElement('input', { name: '.' }), React.createElement(Down, { render: ({ onClick }) => React.createElement( 'button', { type: 'button', onClick: onClick }, 'Down' ) }) ) )); expect(wrapper.find('input').first().props().value).toBe(1); wrapper.find('button').first().simulate('click'); }); }); describe('Remove', () => { it('should be able to remove item from array', done => { const value = { items: [1, 2, 3] }; function onChange(state) { expect(state.items).toEqual([2, 3]); done(); } const wrapper = mount(React.createElement( Form, { value: value, onChange: onChange }, React.createElement( 'fieldset', { name: 'items' }, React.createElement('input', { name: '.' }), React.createElement(Remove, { render: ({ onClick }) => React.createElement( 'button', { type: 'button', onClick: onClick }, 'Remove' ) }) ) )); wrapper.find('button').first().simulate('click'); }); }); describe('Remove pure', () => { it('should be able to remove item from array as children function', done => { const value = { items: [1, 2, 3] }; function onChange(state) { expect(state.items).toEqual([2, 3]); done(); } const wrapper = mount(React.createElement( Form, { value: value, onChange: onChange }, React.createElement( 'fieldset', { name: 'items' }, React.createElement('input', { name: '.' }), React.createElement( Remove, null, ({ onClick }) => React.createElement( 'button', { type: 'button', onClick: onClick }, 'Remove' ) ) ) )); wrapper.find('button').first().simulate('click'); }); }); //# sourceMappingURL=Array.test.js.map