Тест Vuex + Jest не выполняется с TypeError - PullRequest
0 голосов
/ 22 января 2019

Я пытаюсь протестировать модули магазина Vuex в моем приложении, но оно продолжает возвращаться TypeError: Cannot read property 'getters' of undefined независимо от того, что я пытаюсь. Пожалуйста помоги. Вот код:

магазин / index.ts:

import Vuex from 'vuex';

import auth from './auth';

Vue.use(Vuex);

export default new Vuex.Store({
  state: {},
  mutations: {},
  actions: {},
  modules: {
    auth,
  },
});

магазин / auth.ts:

export default {
  state: {
    isLoggedIn: getKey(),
  },
  namespaced: true,
  mutations: {
    setLoginState(state: any, isLoggedIn: boolean) {
      state.isLoggedIn = isLoggedIn;
    },
  },
  actions: {
   // Stuff
  },
};

магазин / __ __ тесты / auth.ts:

import auth from '../auth';

describe('Auth.ts', () => {
  describe('Mutations', () => {
    test('setLoginState sets isLoggedIn correctly', () => {
      const state = {
        isLoggedIn: false,
      };
      auth.mutations.setLoginState(state, true);
      expect(state.isLoggedIn).toBe(true);
    });
  });
});

использованных пакетов:

    "vue": "^2.5.22",
    "vuex": "^3.1.0",
    "webpack": "^4.29.0"
    "jest": "^23.6.0",
    "ts-jest": "^23.10.5",

1 Ответ

0 голосов
/ 22 января 2019

Я нашел проблему.Проблема в том, что auth.ts импортировал экземпляр axios, который не был осмеян.Удаление действий, требующих вызовов axios или добавление jest.mock('API_PATH', jest.fn); для проверки, решает проблему.

...