Как мне издеваться над внутренней функцией модуля при использовании jest и redux-thunk? - PullRequest
0 голосов
/ 11 сентября 2018

Проблема

У меня есть операция, которая отправляет другие операции или действия на основе нажатия клавиши. Я хочу иметь возможность проверить, что отправляется правильная операция, фактически не вызывая ее.

Пример кода

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()?

...