Я хотел бы смоделировать и утверждать вызовы API, определенные в ComponentDidMount.
// App.js
async componentDidMount() {
await this.props.actions.getAnnexList();
await this.props.actions.getTariffCalendar();
}
Я создаю mocks папку с файлом ax ios. js.
// __mocks__/axios.js
export default {
get: jest.fn(),
post: jest.fn(),
};
Вот мой набор тестов. Я хотел бы подтвердить второй вызов API. Я вставил в каждое действие API несколько console.log (), чтобы я знал, что renderComponent () вызывает оба вызова (CDM). Я ожидаю, что mockAx ios будет вызван 2 раза, но мой тест не прошел (он был вызван 1 раз). Итак, мой вопрос, как смоделировать топор ios для подтверждения нескольких вызовов в одном тесте?
import '@testing-library/jest-dom/extend-expect';
import '@testing-library/react/cleanup-after-each';
import React from 'react';
import { render, fireEvent} from '@testing-library/react';
import App from '../App';
import store from '../../store/configureStore';
import { Provider } from 'react-redux';
import mockAxios from 'axios';
/** Render component connected to redux-store */
const renderComponent = () =>
render(
<Provider store={store()}>
<App />
</Provider>,
);
describe('App', () => {
it('get data on CDM (getAnnexList, getTariffCalendar)', () => {
mockAxios.post
.mockResolvedValueOnce(getAnnexList) // first call
.mockResolvedValueOnce(getTariffCalendar); // second call
const {} = renderComponent();
expect(mockAxios.post).toBeCalledTimes(1);
expect(mockAxios.post).toHaveBeenCalledWith(
'http://localhost/OrderTrancheData/GetAnnexList',
{
af: null,
},
requestConfig, // mocking some headers etc.
);
// assert 2nd call
});
}