Я пытаюсь запустить тест для нескольких событий onChange. Сейчас тест проходит с использованием следующего кода, но не влияет на его ПОКРЫТИЕ, что означает неверный
wrapper.find('Datasubjects').props().onChange({City:{target:{value:'test'}}})
Но произойдет сбой, если я использую следующее:
wrapper.find('Datasubjects').find('input[id="city-label-id"]').simulate('change',{City:{target: {value:'test'}}} )
Вот часть Render (), показывающая событие onChange, которое я пытаюсь протестировать:
<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>
Вот моя часть моего тестового файла с использованием Jest Enzyme для 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'}}})
})