Я собрал какое-то пользовательское промежуточное ПО, и все это работает (с точки зрения того, что он делает в браузере то, что я хочу), однако я не могу пройти тест
export const myMiddleware = ({ getState }) => (next) => (action) => {
switch (action.type) {
case ACTIONS.MY_TEST_ACTION:
myTestFunction() // this definitely gets called and ran in the code
next(action)
return
default:
break
}
return next(action)
}
мой тест
jest.mock('utils/myUtil', () => ({
myTestFunction: jest.fn(),
}))
const create = () => {
const store = {
getState: jest.fn(() => dummyState()),
dispatch: jest.fn(),
}
const next = jest.fn()
const invoke = async action => myMiddleware(store)(next)(action)
return { store, next, invoke }
}
beforeEach(() => jest.clearAllMocks())
it('should call firePageView for SHARED_ACTIONS.FIRE_PAGE_VIEW', () => {
const { invoke } = create()
expect(myTestFunction).not.toHaveBeenCalled()
invoke({ type: ACTIONS.MY_TEST_ACTION })
expect(myTestFunction).toHaveBeenCalled()
})
Я не уверен, что я делаю не так? Я запускаю действие и пытаюсь утверждать, что моя функция была вызвана. он регистрирует все, когда я запускаю его в браузере. почему не в тесте?