Реагировать на Redux, написать модульный тест для ajax-запроса - PullRequest
0 голосов
/ 01 октября 2018

Я пишу тестовые случаи для компонента, который запускает запрос ajax в componentDidMount().По завершении запроса я запускаю действие избыточности для обновления состояния (которое обновляет пользовательский интерфейс, используя реквизиты).

componentDidMount() {
    this.props.requestCurrenciesWithRates();
    return axios
      .post(this.props.serverUrl + `/api`, {
        action: 'GET_CURRENCIES_WITH_RATES',
        data: {},
        meta: {}
      })
      .then(res => {
        let { accountCurrencies, currencyRates } = res.data.payload;
        // redux action
        this.props.receiveCurrenciesWithRates(accountCurrencies, currencyRates);
      })
      .catch(error => {
        // handle error
        // redux action 
        this.props.appError(error.message);
      });
  }

Я хочу написать модульный тест для проверки обновления пользовательского интерфейса.Я использую jest, enzyme для проверки

const apiSetup = () => {
  const {wrapper, store} = providers(<Component />)
  const page = mount(wrapper);
  // I am mocking the api using jest.mock 
  const apiPromise = axios
    .post(`/api`, {
      action: 'GET_CURRENCIES_WITH_RATES',
      data: {},
      meta: {}
    })
    .then(res => {
       chai
            .expect(
              page.find('TopUpCurrencies').find('.tcm-available-currency-tab')
            )
            .to.have.lengthOf(2);
          chai
            .expect(page.find('TopUpCurrencies').find('.tcm-currency-rate-tab'))
            .to.have.lengthOf(8);
    });

  return { page, apiPromise };
};

Но представление никогда не обновляется.Есть ли способ проверить представление после запуска действия и обновления представления?

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