Я тестирую компонент vue, который отправляет действие (functionx
) при монтировании. То же действие (functionx
) отправляется при нажатии определенной кнопки refresh
. Я тестирую поведение этой кнопки refre sh - то есть действие отправки vuex вызывается с аргументом 'functionx'. Вот мой тест:
it('makes an api call to server when refresh button is clicked', () => {
store.dispatch = jest.fn();
const wrapper = mount(Categories, {
sync: false,
store,
localVue
});
const refreshButton = wrapper.find('span.fa-sync');
refreshButton.trigger('click');
expect(store.dispatch).toHaveBeenCalledWith('categoryStore/fetchCategories');
})
});
, который проходит. Теперь, когда то же действие отправляется изначально при монтировании компонента. Таким образом, в общей сложности отправка называется дважды. Я знаю, что могу использовать .toHaveBeenNthCalledWith(nthCall, arg1, arg2, ....)
, чтобы проверить, что отправка вызывалась оба раза с одним и тем же аргументом, но для этого мне придется написать два оператора ожидания, как показано ниже:
expect(store.dispatch).toHaveBeenNthCalledWith(1, 'categoryStore/fetchCategories');
expect(store.dispatch).toHaveBeenNthCalledWith(2, 'categoryStore/fetchCategories');
Могу ли я каким-то образом достичь вышеуказанного в одном утверждении? Любая функция сопоставления или любое свойство объекта expect
, которое можно использовать?