Skip to content

Commit 0bdbf85

Browse files
committed
Add test for validation MUI tabs
1 parent f2cabde commit 0bdbf85

File tree

1 file changed

+49
-1
lines changed

1 file changed

+49
-1
lines changed

packages/mui-component-mapper/src/tests/tabs.test.js

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import AppBar from '@material-ui/core/AppBar';
44
import Tabs from '@material-ui/core/Tabs';
55
import Tab from '@material-ui/core/Tab';
66

7+
import FormRenderer, { validatorTypes } from '@data-driven-forms/react-form-renderer';
8+
import { formFieldsMapper, layoutMapper } from '../index';
79
import FormTabs from '../form-fields/tabs';
810

911
describe('tabs', () => {
@@ -31,7 +33,7 @@ describe('tabs', () => {
3133
expect(wrapper.find(AppBar)).toHaveLength(1);
3234
expect(wrapper.find(Tabs)).toHaveLength(1);
3335
expect(wrapper.find(Tab)).toHaveLength(2);
34-
expect(wrapper.find('h1')).toHaveLength(1);
36+
expect(wrapper.find('h1')).toHaveLength(2);
3537
});
3638

3739
it('should switch tabs correctly', () => {
@@ -43,4 +45,50 @@ describe('tabs', () => {
4345

4446
expect(wrapper.instance().state.activeTab).toEqual(1);
4547
});
48+
49+
it('validate all tabs', () => {
50+
const onSubmit = jest.fn();
51+
const wrapper = mount(<FormRenderer
52+
formFieldsMapper={ formFieldsMapper }
53+
layoutMapper={ layoutMapper }
54+
onSubmit={ (values) => onSubmit(values) }
55+
schema={{ fields: [{
56+
component: 'tabs',
57+
name: 'tabs1',
58+
title: 'tabs1',
59+
fields: [{
60+
name: 'tabitem1',
61+
component: 'tab-item',
62+
fields: [{
63+
component: 'text-field',
64+
name: 'name',
65+
validate: [{ type: validatorTypes.REQUIRED }],
66+
}],
67+
}, {
68+
name: 'tabitem2',
69+
component: 'tab-item',
70+
fields: [{
71+
component: 'text-field',
72+
name: 'password',
73+
validate: [{ type: validatorTypes.REQUIRED }],
74+
}],
75+
}],
76+
}]}}
77+
/>);
78+
79+
wrapper.find('input').first().simulate('change', { target: { value: 'NAME' }});
80+
wrapper.update();
81+
82+
wrapper.find('form').simulate('submit');
83+
wrapper.update();
84+
85+
expect(onSubmit).not.toHaveBeenCalled();
86+
87+
wrapper.find('input').last().simulate('change', { target: { value: 'PASSWORD' }});
88+
wrapper.update();
89+
90+
wrapper.find('form').simulate('submit');
91+
92+
expect(onSubmit).toHaveBeenCalledWith({ name: 'NAME', password: 'PASSWORD' });
93+
});
4694
});

0 commit comments

Comments
 (0)