Я довольно застрял в том, как я тестирую компоненты, которые используют vuex.
Тест, который я пытаюсь запустить, просто тестирует его, когда он запускается, чтобы установить для редактирования значение true. Метод выглядит следующим образом:
editMovie: function(movie){
console.log(movie)
this._originalMovie = Object.assign({}, movie);
movie.edit = true;
},
Некоторые методы и при монтировании отправляются в хранилище.
Я получаю ошибки об этом, не могу найти отправку, поэтому следует https://vue-test-utils.vuejs.org/guides/using-with-vuex.html и добавлен в хранилище Mock (я думаю ...) с этим:
Ошибка:
console.error node_modules / vuex / dist / vuex.common.js: 899 [vuex] неизвестный получатель: фильмы
console.error node_modules / vue / dist / vue.runtime.common.dev.js: 621 [Vue warn]: ошибка при рендеринге: «Ошибка типа: невозможно прочитать свойство« 0 »из неопределенного» * 1018 *
Код:
import { shallowMount, createLocalVue } from '@vue/test-utils'
import Vuex from 'vuex'
//import Actions from '../../src/store/Actions'
import MoviesList from '@/components/MoviesList.vue'
const localVue = createLocalVue()
localVue.use(Vuex)
describe('MoviesList.vue', () => {
let actions
let store
beforeEach(() => {
actions = {
getMovies: jest.fn(),
}
store = new Vuex.Store({
actions
})
})
it('Edit should be true', () => {
const wrapper = shallowMount(MoviesList, { store, localVue })
wrapper.setData({
movies: { 0: {
deleted:false,
edit:false,
name:"Full Metal Jacket",
released_on:"1987",
}}
})
console.log(wrapper.vm.movies[0])
wrapper.vm.editMovie(wrapper.vm.movies[0])
expect(wrapper.vm.movies[0].edit).toBe(true)
})
})