Passing an event object to enzyme .simulate
enzyme, javascript, jestjs, reactjs
Solution
`simulate` function takes other arguments which will be passed to the event handler. You can mock your event. E.g.:
const mockedEvent = { target: {} }
checkbox.find('input').simulate('click', mockedEvent)
Problem
I am using Jest and Enzyme to test a React checkbox component. This is my test: ``` it('triggers checkbox onChange event', () => { const configs = { default: true, label: 'My Label', element: 'myElement', } const checkbox = shallow( <CheckBox configs={configs} /> ) checkbox.find('input').simulate('click') }) ``` I get this error however when running the test: ``` TypeError: Cannot read property 'target' of undefined ``` This is the input for my component: ``` <div className="toggle-btn sm"> <input id={this.props.configs.element} className="toggle-input round" type="checkbox" defaultChecked={ this.props.defaultChecked } onClick={ e => this.onChange(e.target) } > </input> </div> ``` I think that I need to pass an event as the second object to `simulate` but I am not sure how to do this. Thanks