Я пытаюсь проверить функцию, которая является вызовом / обещанием API, поэтому я могу проверить состояние внутри then
, используя шутку, но, похоже, не могу понять, что делать. Я пытался смоделировать файл и функцию, чтобы вернуть обещание, но получаю сообщение об ошибке TypeError: (0 , _dataAccess.fetchBundlesFromApi) is not a function
Я пытался следовать документации на сайте шуток, а также множеству разных ответов из-за переполнения стека, но ни один из них, похоже, не работает. Вот код, который я хочу проверить. Я хочу иметь возможность вызвать это, а затем сказать, если все в порядке проверить состояние или если ошибка сделать что-то еще. ниже приведен код, который я пытаюсь сделать, и издевательство, которое я пробовал.
getLatestPrices = params => {
const { updateBundles } = this.props;
fetchBundlesFromApi(params)
.then(({ data: { bundles } }) => {
updateBundles(bundles);
this.setState({ showUpdatingPrices: false });
window.TemplateCalculator.reload();
})
.catch(() => goToUrl(bundlesUrl));
};`
fetchBundlesFromApi
- это import { fetchBundlesFromApi } from '../../../../dataAccess';
, то есть вызов axios:
const fetchBundlesFromApi = params => axios(`${bundleRoute}/bundles${params}`);
export { fetchBundlesFromApi };
Этоиздевательство, которое я пробовал.
jest.mock('../../../../dataAccess', () => ({
fetchBundlesFromApi: new Promise(resolve => resolve({ data: mockBundles })),
}));
Я также пробовал эти сайты: https://binarapps.com/blog/test-ajax-calls-in-react-component-lifecycle. Ошибка Jest / Enzyme: «Метод setState» предназначен для запуска только на одном узлеВместо этого найдено 3. " https://jestjs.io/docs/en/asynchronous