I am trying to run test for multiple onChange events. The test right now passes with the following code but does not affect its COVERAGE, means incorrect
wrapper.find('Datasubjects').props().onChange({City:{target:{value:'test'}}})
But it fails if I use the following:
wrapper.find('Datasubjects').find('input[id="city-label-id"]').simulate('change',{City:{target: {value:'test'}}} )
Here is part of Render(), showing the onChange event that I am trying to test:
<Modal isOpen={this.state.quickFilterModalOpen} style={descriptionModalStyle}>
<div className='advanced-search-modal-body'>
<label>City</label>
<input id='city-label-id' onChange={(e) => {this.setState({advancedFilter: {...this.state.advancedFilter, City: e.target.value}})}} value={this.state.advancedFilter.City}/>
</div>
Here is my part of my test file using Jest Enzyme for React JS
beforeEach(() => wrapper = mount(<BrowserRouter><Datasubjects {...baseProps} /></BrowserRouter>)
it("Test onChange event on City - Label", () => {
baseProps.onChange.mockClear();
wrapper.find('Datasubjects').setState({
advancedFilter:{
City:'test-city'
},
quickFilterModalOpen:true
});
wrapper.update()
wrapper.find('Datasubjects').find('input[id="city-label-id"]').props().onChange({City:{target:{value:'test-city'}}})
})