шутка издеваться над несколькими топорами ios вызов - PullRequest
0 голосов
/ 09 марта 2020

Я хотел бы смоделировать и утверждать вызовы 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

  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...