Я создал фабрику сервисов API, передавая динамически URL, функцию в качестве параметра.Как только данные об успехе поступают в функцию обратного вызова и все работает нормально, как и ожидалось.Для этого же я собираюсь написать тестовые примеры JEST. Я не мог найти правильный подход, чтобы сделать это .Может помочь кому-то.Очень ценю.
Код здесь
function userLogin(username, password) {
const reqBody = {
companyEmailAddress: username,
password,
};
const url = `${config.apiBaseUrl}${serviceMethodConstants.login}`;
return (dispatch) => {
dispatch(serviceFactory.postData(url, false, reqBody, function (response, dispatch) {
if (response !== undefined) {
console.log(response )
}
}));
};
}
Для того же самого я написал тестовый пример JEST, но он не показывает никаких сообщений об ошибках или об успешном выполнении, как ожидалось.
JEST тестовый код
import { userConstants } from './constants';
import { serviceFactory } from '../../services/_helpers/serviceFactory';
const loginData = {
companyEmailAddress: 'rameshffdfdf.lambanihghgh@gmail.com',
password: 'Ramesh@1',
};
axiosMock.onPost(routeUrl).reply(200, JSON.stringify(loginData));
const spy = jest.spyOn(axios, 'post');
await store.dispatch(userActions.userLogin(...loginData, function (response, dispatch) {
expect(response.message).toEqual('Failure');
expect(spy).toBeCalled();
}));