Я пишу тестовые случаи для компонента, который запускает запрос 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 };
};
Но представление никогда не обновляется.Есть ли способ проверить представление после запуска действия и обновления представления?