@@ -11,10 +11,20 @@ import {
1111 SwitchField ,
1212} from '../form-fields/form-fields' ;
1313import { mount , shallow } from 'enzyme' ;
14-
15- const FieldProvider = ( { render, ...props } ) => < div > { render ( { input : { name : 'Foo' , onChange : jest . fn ( ) } , meta : { error : false , touched : false } , ...props } ) } </ div > ;
14+ import { Radio , Checkbox } from '@patternfly/react-core' ;
1615
1716describe ( 'FormFields' , ( ) => {
17+ let FieldProvider ;
18+ let onChangeSpy ;
19+
20+ beforeEach ( ( ) => {
21+ onChangeSpy = jest . fn ( ) ;
22+
23+ FieldProvider = ( { render, ...props } ) => < div >
24+ { render ( { input : { name : 'Foo' , onChange : onChangeSpy } , meta : { error : false , touched : false } , ...props } ) }
25+ </ div > ;
26+ } ) ;
27+
1828 const props = {
1929 input : {
2030 name : 'Name of the field' ,
@@ -91,6 +101,18 @@ describe('FormFields', () => {
91101 expect ( toJson ( wrapper ) ) . toMatchSnapshot ( ) ;
92102 } ) ;
93103
104+ it ( 'Multiple checkbox - should call on change correctly' , ( ) => {
105+ const wrapper = mount (
106+ < CheckboxField { ...propsWithOptions } FieldProvider = { FieldProvider } />
107+ ) ;
108+
109+ expect ( onChangeSpy ) . not . toHaveBeenCalled ( ) ;
110+
111+ wrapper . find ( Checkbox ) . first ( ) . props ( ) . onChange ( ) ;
112+
113+ expect ( onChangeSpy ) . toHaveBeenCalled ( ) ;
114+ } ) ;
115+
94116 it ( 'should render TextArea correctly' , ( ) => {
95117 const wrapper = mount (
96118 < TextAreaField { ...props } />
@@ -119,6 +141,16 @@ describe('FormFields', () => {
119141 expect ( toJson ( wrapper ) ) . toMatchSnapshot ( ) ;
120142 } ) ;
121143
144+ it ( 'radio - should call fieldProvider onChange correctly' , ( ) => {
145+ const wrapper = mount (
146+ < RadioField { ...propsWithOptions } FieldProvider = { FieldProvider } disabled = { true } />
147+ ) ;
148+
149+ wrapper . find ( Radio ) . first ( ) . props ( ) . onChange ( ) ;
150+
151+ expect ( onChangeSpy ) . toHaveBeenCalled ( ) ;
152+ } ) ;
153+
122154 it ( 'should render Select correctly' , ( ) => {
123155 const wrapper = shallow (
124156 < SelectField { ...propsWithOptions } />
0 commit comments