mirror of
https://github.com/Mastermindzh/examples.git
synced 2024-11-23 01:42:05 +01:00
67 lines
1.5 KiB
JavaScript
67 lines
1.5 KiB
JavaScript
import { PENDING, FULFILLED, REJECTED } from "redux-promise-middleware";
|
|
|
|
export default function handleReduxPromiseMiddleware(
|
|
reducer,
|
|
actionType,
|
|
initialState,
|
|
statusKey,
|
|
meta = {}
|
|
) {
|
|
it(`should handle ${PENDING} (redux-promise-middleware)`, () => {
|
|
let taintedState = Object.assign({}, initialState);
|
|
taintedState[statusKey] = "TAINTED";
|
|
|
|
const pendingAction = {
|
|
type: `${actionType}_${PENDING}`,
|
|
payload: PENDING,
|
|
meta: meta,
|
|
};
|
|
|
|
expect(reducer(taintedState, pendingAction)[statusKey]).toEqual(PENDING);
|
|
});
|
|
|
|
it(`should handle ${REJECTED} (redux-promise-middleware)`, () => {
|
|
let taintedState = Object.assign({}, initialState);
|
|
taintedState[statusKey] = "TAINTED";
|
|
|
|
const rejectAction = {
|
|
type: `${actionType}_${REJECTED}`,
|
|
payload: REJECTED,
|
|
meta: meta,
|
|
};
|
|
|
|
expect(reducer(taintedState, rejectAction)[statusKey]).toEqual(REJECTED);
|
|
});
|
|
|
|
it(`should handle ${FULFILLED} (redux-promise-middleware)`, () => {
|
|
let taintedState = Object.assign({}, initialState);
|
|
taintedState[statusKey] = "TAINTED";
|
|
|
|
const fulfillAction = {
|
|
type: `${actionType}_${FULFILLED}`,
|
|
payload: FULFILLED,
|
|
meta: meta,
|
|
};
|
|
|
|
expect(reducer(taintedState, fulfillAction)[statusKey]).toEqual(FULFILLED);
|
|
});
|
|
}
|
|
|
|
/**
|
|
USAGE:
|
|
import {
|
|
handleReduxPromiseMiddleware
|
|
} from "redux-promise-middleware.spec.js";
|
|
handleReduxPromiseMiddleware(
|
|
reducer,
|
|
"ACTION_KEY",
|
|
initialState,
|
|
"status", {
|
|
data: {
|
|
access_token: "",
|
|
token_type: ""
|
|
}
|
|
}
|
|
);
|
|
**/
|