Как проверить VueRouter beforeRouteEnter, используя '@ vue / test-utils'? - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь проверить мой компонент «Контейнер», который обрабатывает логику форм.Он использует vue-router и vuex хранилище для отправки действий для получения сведений о формах.

У меня есть следующий код устройства, который не работает должным образом:

it('On route enter, it should dispatch an action to fetch form details', () => {
  const getFormDetails = sinon.stub();
  const store = new Vuex.Store({
    actions: { getFormDetails }
  });

  const wrapper = shallowMount(MyComponent, { store });
  wrapper.vm.$options.beforeRouteEnter[0]();
  expect(getFormDetails.called).to.be.true;
});

Со следующим компонентом (лишенным всего, потому что я не считаю его релевантным (надеюсь):

export default {
  async beforeRouteEnter(to, from, next) {
    await store.dispatch('getFormDetails');
    next();
  }
};

я получаю следующую ошибку утверждения:

AssertionError: expected false to be true

Я предполагаю, что это потому, что я не монтирую маршрутизатор в своем тесте вместе с localVue . Я попытался выполнить шаги, но не смог заставить его вызвать beforeRouteEnter.

В идеале я хотел бы внедрить маршрутизатор с начальным путем и провести разные тесты на изменение маршрута. Для моего случая использования я бы хотел вводить разные реквизиты / отправлять различные действия на основе компонента на основе путироутера.

Я очень новичок в Vue, поэтому извиняюсь, если мне не хватает чего-то очень очевидного, и заранее благодарю за любую помощь! ??

...