Понятия не имею, как найти способ написания этого интеграционного теста.Я использую энзим для насмешливых компонентов реакции, jest для тестирования и nock для насмешливых вызовов axios api.
До сих пор я создал тест, имитирующий нажатие на кнопку, и я хотел бы посмеяться над вызовом api.
В интернете особой помощи нет.
Мой тест:
it('Should invoke clear action and clear the group', (done) => {
// GIVEN
const clearButtonComponent = wrapper.find('[id="123"]');
nock('http://localhost:8080')
.intercept('/path/api/brum/123/group', 'DELETE')
.reply(200, {
status: 200,
message: 'cleared',
});
const service = new myService();
// WHEN
clearButtonComponent.first().simulate('click');
const result = Promise.resolve(service.clearGroup(123));
// THEN
expect(result).toEqual({ x: 'x' }); // I know it's not what I expect
wrapper.update();
done();
});
асинхронное действие приставка:
export const clearGroup = id=> (dispatch, getState) => {
myService.clearGroup(id)
.then(() => {
return dispatch(getGroup(id))
});
};
метод в myService:
clearGroup(id) {
return this._delete(`/${id}/group`);
}
Конечно, путь более сложный, но мой сервис расширяет базовый сервис, который имеет этот базовый URL.
Может кто-нибудь сказать мне, как смоделировать это, чтобы позволить коду идти дальше?
Он все еще жалуется, что id не определен - похоже, что nock не издевается над ним.