react-form-controlled
Version:
Intuitive react forms for building powerful applications
138 lines (120 loc) • 3.32 kB
JavaScript
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