Пакеты: Jest, Enzyme (и Nock, которые не работали).
У меня есть следующий компонент React:
import ...
const request = require('request-promise-native');
class SomeSearchContainer extends Component {
constructor(props) {
super(props);
this.state = {
...
};
};
onResponse = (response) => {
const { var1, var2 } = response;
if (var1) {
this.setState(...)
}
};
onSubmit = (event) => {
const someId = this.props.someId;
if (someId.length === 4) {
request(
{
uri: `${location.href}api/${someId}`,
json: true,
}).then(this.onResponse)
.catch(this.props.onResponseError);
} else {
this.setState(...)
}
};
render() {
return (
<button id="btn-search" onClick={this.onSubmit}>Search</button>
);
}
}
export default SomeSearchContainer;
Я пытаюсь реализовать для этого модульный тест, поэтому я хотел бы издеваться над запросом-обещанием-native и assert
, что этап изменился соответствующим образом в зависимости от результата (onResponse
).
В идеале я хотел бы выполнить неглубокую визуализацию компонента, смоделировать событие щелчка и подтвердить, что состояние изменилось (соответственно).
Я пробовал разные способы, но либо мой тест не ожидает запроса на возврат, либо я не могу имитировать запрос.
Могли бы вы, пожалуйста, посоветовать ?