Я пытаюсь смоделировать функцию с именем callApi. Я использую jest.fn (), но у меня появляется сообщение об ошибке:
функция callApi (метод: строка, URL: строка, путь: строка, данные ?: любая): Обещание>
Невозможно присвоить 'callApi', потому что это свойство только для чтения. Ts (2540)
Я пытался следовать примерам на
примеры шуток
Что не так с моим кодом? Почему у меня появляется сообщение об ошибке.
Часть callApi это
импорт axios из "axios";
export function callApi(
method: string,
url: string,
path: string,
data?: any
) {
switch (method) {
Тест выглядит следующим образом:
import {runSaga} from 'redux-saga';
import * as api from '../Utilities/api'
import { getPaymentsError, getPaymentsSuccess, IPaymentsAction } from './actions';
import handleFetch from './sagas'
test('should test fetch payments success',async() =>{
const dispatchedActions = [{}];
const mockedPayments = [{
details: {
amount: "10000",
date: new Date(),
id: 5
},
id: 5,
month: "Feb 2003",
userID: 3
}];
api.callApi = jest.fn(() => Promise.resolve(mockedPayments));<----------error here
const fakeStore = {
dispatch:(action:IPaymentsAction) =>dispatchedActions.push(action)
}
await runSaga(fakeStore,handleFetch).done;
expect(api.callApi.mock.calls.length).toBe(1);
expect(dispatchedActions).toContainEqual(getPaymentsSuccess(mockedPayments));
})