Я пытаюсь добавить примеры модульных тестов в свои действия с редукцией.
Я использую thunk
, promise-middleware
в своих действиях
одно из моих действий похоже на это
export function deleteCommand(id) {
return (dispatch) => {
dispatch({
type: 'DELETE_COMMAND',
payload: axios.post(`${Config.apiUrl}delete`, { _id: id })
})
}
}
модульный тест для этого
import configureMockStore from "redux-mock-store"
const middlewares = [thunk, promiseMiddleware()];
const mockStore = configureMockStore(middlewares)
it('creates DELETE_COMMAND_FULFILLED after deleting entry', (done) => {
nock('http://localhost:8081/')
.post('/delete',{
_id: 1
})
.reply(200, {})
const expectedActions = [{
type: 'DELETE_COMMAND_FULFILLED',
payload: {}
}]
const store = mockStore({
command: {
commands: []
}
})
store.dispatch(actions.deleteCommand({_id: 1}).then(function () {
expect(store.getActions())
.toEqual(expectedActions)
done();
})
})
Я использую nock
, redux-mock-store
, сконфигурированный с thunk
, promise middleware
Это дает then of undefined
затем я изменил действие, чтобы вернуть обещание, затем я получил исключение unhandled promise reject
, я добавил улов к вызову отправки действия. Теперь я получаю Network Error
, потому что nock не издевается над вызовом. Также пробовал moxios
, менял axios
на isomorphic-fetch
, whatwg-fetch
. Кажется, не работает
Где я делаю это неправильно?.