Невозможно протестировать эти 2 события onClick - не уверен, правильно ли это или правильный подход.
Слишком много строк кода
Использование Jest и Enzyme - React JS
Вот тестовый файл
it('should call Method on button click', () => {
baseProps.setSelectedFormJSON.mockClear();
wrapper.setProps({
});
wrapper.setState({
loadSpinner: false,
});
wrapper.find('#list-element-form').at(0).simulate('click')
expect(baseProps.setSelectedFormJSON).toHaveBeenCalled();
});
it('should test 2nd button click', () => {
baseProps.deleteFormConfirm.mockClear();
wrapper.setState({ })
wrapper.find('#deletetest-Form').simulate('click',)
expect(baseProps.deleteFormConfirm).toHaveBeenCalled();
});
Я получаю следующую ошибку для обоих тестов:
Метод «имитация» предназначен для запуска на 1 узле. Вместо этого найдено 0.
Вот часть файла .js:
list = allForms.map( (form) => {
let viewType = 'DFT';
if(form.System){
viewType = 'SYS';
}
if(services[functions.getServiceFromName(form.Name)]) {
services[functions.getServiceFromName(form.Name)].push(
<div id='list-element-form' value={form.Form_UID} onClick={() => {this.handleFormClick(form)}} >
<div className={`paneltile panel-${viewType}`}>
<div id='deletetest-Form' onClick={ (e) => {this.props.deleteFormConfirm(e, form)}}>
<FontAwesome className='fa fa-times' name='view-close-x' size='2x'/>
</div>
Метод HandleFormClick
handleFormClick = (json) => {
let id = json.Form_UID ? json.Form_UID : json;
this.setState({loadSpinner: true})
fetch(`${this.props.services.Form.URL}/${id}`, {
headers: {
'Content-Type': 'application/json',
'Ocp-Apim-Subscription-Key': this.props.services.Form.subscription_key,
},
method: 'GET',
credentials: 'include',
}).then(res => res.json())
.then(json => {
this.props.setSelectedFormJSON(json, true);
this.setState({loadSpinner: false})
})
}
Цель состоит в том, чтобы сдать эти 2 теста, используя те же настройки, что и в моем файле теста.