У меня есть файл с избыточностью, содержащий мой редуктор и все мои действия через именованный экспорт.
export const reducer = (state, action) => ...
export myAction = action => {
return {type: 'ACTION', action}
}
...
Когда в моем тестовом файле я импортирую редуктор и действия. У меня есть renderWithRedux, который принимает редуктор и создает real store внутри.
function renderWithRedux(ui, reducer = combineReducers(reducers), initialState = {}) {
const store = createStore(reducer, initialState)
const utils = render(<Provider store={store}>{ui}</Provider>)
return {
...utils,
store,
}
}
Вопрос, который у меня возникает, заключается в том, что компоненту, который я рендеринг, передаются действия в mapDispatchToProps в подключенном компоненте.
export default connect(mapStateToProps, { myAction })(MyComponent)
Я хочу смоделировать myAction в моем конкретном случае использования, это действие на самом деле было бы громом, и я хочу посмотреть, обновился ли магазин.
Проблема у меня в том, как мне издеваться над моим действием, а не редуктором. Я пробовал
jest.mock('./reducerFile', () => {
return jest.fn().mockImplementation(() => {
return {
reducer: require.requireActual('./reducerFile').reducer,
myAction: jest.fn()
}
})
})
Но редуктор все еще каким-то образом издевается.
Это вообще возможно, или я просто жажду странствий.