Как проверить действие vuex с изменением местоположения? - PullRequest
0 голосов
/ 20 февраля 2020

В моем действии vuex я меняю объект окна местоположения. У меня есть действие с изменением местоположения:

async setForm({ rootState, state, commit, dispatch }, formData) {
          ...

          switch (answ.result.type) {
            ...
            case 'redirect':
              console.log(answ.data.url);
              window.location = answ.data.url;
              console.log({ location: window.location.href });
              break;
            default:
              break;

Моя тестовая функция

    it('setForm - success, redirect', async done => {
      const formData = {
        status: 'success',
        result: {
          type: 'redirect',
          data: {
            url: 'https://www.google.ru/'
          }
        }
      };

      await store.dispatch(
        'deposit/setForm',
        formData,
        { root: true }
      );

      await new Promise(resolve => {
        setTimeout(() => { resolve(true); }, 1000);
      });

      expect(window.location.href).toBe('https://www.google.ru/');
    });

Но, мое местоположение не изменится.

    expect(received).toBe(expected) // Object.is equality

    Expected: "https://www.google.ru/"
    Received: "http://localhost/"

Как изменить местоположение и тесты это?

...