Проблема
У меня есть операция, которая отправляет другие операции или действия на основе нажатия клавиши. Я хочу иметь возможность проверить, что отправляется правильная операция, фактически не вызывая ее.
Пример кода
taskOperations.js
const saveTask = () => {
return (dispatch,getState) => {
//some AJAX code I don't want to run
}
}
const dispatchShortcut = (keyCode) => {
return (dispatch, getState) => {
switch(keyCode) {
case 'ctrl+s':
dispatch(saveTask())
break
//...more cases
}
}
export { saveTask, dispatchShortcut }
taskOperations.spec.js
describe('dispatchShortcut', () => {
it('dispatches verifyTask on a ctrl+v press', () => {
const store = mockStore() //using redux-mock-store
taskOperations.saveTask = jest.fn()
//this still calls the original saveTask()
store.dispatch(mockOperations.dispatchShortcut("ctrl+s"))
})
Как надежно отключить функцию saveTask()
?