Хук beforeEach
происходит до того, как он входит в блок it
.Таким образом, настройка store
фактически завершена в данный момент.Насколько я вижу из источника vuex
, он отсоединяет обратные вызовы действий от объекта параметров, который вы передали ему на этапе создания (store = new Vuex.Store(...)
).Вы можете проверить это здесь .
Итак, я бы посоветовал вам либо создать новый объект магазина внутри вашего блока it
:
it('should go to catch block', () => {
actions.actionClick = jest.fn(() => Promise.reject(new Error()))
store = new Vuex.Store({ actions })
const wrapper = shallowMount(Actions, {
store,
localVue
})
//still goes to then block and not the catch block
})
})
, либо использовать hotUpdate (newOptions)
метод на экземпляре магазина.Я не проверял это.Но, опять же, из vuex
источника он должен делать именно то, что вам нужно.
it('should go to catch block', () => {
actions.actionClick = jest.fn(() => Promise.reject(new Error()))
store.hotUpdate({ actions })
const wrapper = shallowMount(Actions, {
store,
localVue
})
//still goes to then block and not the catch block
})
})