jest утверждает, что функция вызывалась дважды и оба раза с определенным аргументом - PullRequest
0 голосов
/ 30 мая 2020

Я тестирую компонент 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, которое можно использовать?

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