Я работаю над создателем опроса в Vue, и вопросы опроса, которые создает пользователь, передаются в Vuex, поэтому их можно получить позже, например так:
computed: {
inputs() {
return this.$store.getters.questions(this.pageNumber);
},
},
pageNumber
- это реквизит, который получает компонент, а inputs()
возвращает массив вопросов. Кажется, все это работает с точки зрения отображения правильных вопросов на экране, но у меня проблемы с Jest тестами.
Чтобы протестировать, я надеялся, что смогу издеваться над магазином с помощью геттеров, как моя попытка ниже (без некоторых частей):
const localVue = createLocalVue();
localVue.use(Vuex);
beforeEach(() => {
state = {
survey: {
pages: [
// pages objects
],
},
};
getters = {
questions: () => [
{ type: 'Radio', config: { label: 'Test label', options: [{ label: 'Test option label' }] }, validation: [] },
],
};
store = new Vuex.Store({
state,
getters,
});
});
Но это приводит к ошибке:
TypeError: this.$store.getters.questions is not a function
Однако удаление этой функции стрелки из getters.questions дает мне:
[vuex] getters should be function but "getters.questions" is [{"type":"Radio","config":{"label":"Test label","options":[{"label":"Test option label"}]},"validation":[]}].
Так что я думаю, что могу быть совершенно недоразумением. Может ли кто-нибудь указать мне правильное направление?