У меня проблемы с проверкой действия отправки в v-модели компонента. У меня есть множественный выбор, и каждый раз, когда значения изменяются, запускается диспетчерское действие, потому что выбранное значение сохраняется в хранилище Vuex. Я хочу проверить, что диспетчерское действие было вызвано после того, как значение было выбрано в множественном выборе.
<multiselect
v-model="subdivision"
:options="options"
:multiple="false"
:close-on-select="true"
:clear-on-select="false"
:preserve-search="false"
placeholder="Please select"
label="name"
track-by="name"
:preselect-first="false"
selectedLabel="✓"
deselectLabel="×"
selectLabel=" "
ref="myMultiselect"
id="multiselectId"
></multiselect>
computed: {
subdivision: {
set(value) {
this.$store.dispatch("subdivision", value);
},
get(value) {
return this.$store.state.subdivision;
}
}
}
Это тест:
describe('Value change of subdivision', () => {
let multiselect;
let cmp2;
let actions;
let mutations;
let state;
let getters;
beforeEach(() => {
actions = {
subdivision: jest.fn()
};
state = storeConfig.state;
mutations = storeConfig.mutations;
getters = storeConfig.getters;
store = new Vuex.Store({ state, getters, mutations, actions });
cmp2 = shallowMount(MyComponent, {
store,
localVue,
router
});
})
it('Select value should dispatch action', () => {
let multiselect = cmp2.find({ ref: 'myMultiselect' });
multiselect.trigger('input',subdivisions[1]);
expect(actions.subdivision).toHaveBeenCalled();
})
})
Не работает. Я получаю следующую ошибку.
expect(jest.fn()).toHaveBeenCalled()
Expected mock function to have been called.
Что не так? Пожалуйста, помогите.