У меня есть файл store.js
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export const mutations = {
increment: state => state.count++,
Changeloading(state, status) { state.loading = status },
ChangeUserGroup(state, newGroup) { state.userGroup = newGroup; },
ChangeOriginalRole(state, newRole) { state.originalRole = newRole; }
}
export default new Vuex.Store({
state: {
count: 0,
loading: false, //header, TeamLead, TeamMember
listUserGroup: [],
userRole: "",
originalRole: "",
userGroup: {}
},
mutations,
...
})
В моем тестовом файле store.spec.js
import { expect } from 'chai'
import mutations from '@/store'
// destructure assign `mutations`
const { increment } = mutations
describe('mutations', () => {
it('INCREMENT', () => {
// mock state
const state = { count: 0 }
// apply mutation
increment(state)
// assert result
expect(state.count).to.equal(1)
})
})
Вот результат, который я получаю:
мутация
1) INCREMENT
0 прохождение (75мс)
1 ошибка
1) мутации
INCREMENT:
Ошибка типа: приращение не является функцией
в Context.increment (dist \ webpack: \ tests \ unit \ store.spec.js: 13: 5)
РЕДАКТИРОВАТЬ (16.04.2009)
Я иду еще на один шаг. Я увидел здесь, что я должен «экспортировать» все компоненты в моем store.js, например:
import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);
export const mutations = {...};
export const state = {...};
export const actions = {...};
export const getters = {...};
export default new Vuex.Store({
state,
mutations,
actions,
getters
});
Но даже в этом случае ... я получаю уродливое (сообщение об ошибке тестирования)
0 прохождения (61мс)
1 ошибка
1) мутации
приращение:
Ошибка типа: приращение не является функцией
в Context.increment (dist \ webpack: \ tests \ unit \ store.spec.js: 12: 5)