redux-compose-hors
Version:
Combine higher order reducers
63 lines (57 loc) • 1.67 kB
JavaScript
;
var _ = require('./');
var _2 = _interopRequireDefault(_);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
describe('redux-compose-hocs', function () {
it('enables composing', function () {
function hocOne(reducer) {
return function hocOneReducer(state, action) {
if (action.type === 'hocOne') {
return hocOneReducer(state, action.action);
}
return reducer(state, action);
};
}
function hocTwo(reducer) {
return function hocTwoReducer(state, action) {
if (action.type === 'hocTwo') {
return hocTwoReducer(state, action.action);
}
return reducer(state, action);
};
}
var reducer = function reducer(state, action) {
switch (action.type) {
case '1':
return 1;
default:
return 0;
}
};
var composedReducer = (0, _2.default)(reducer, hocOne, hocTwo);
var hocOneActionType = 'hocOne';
var hocTwoActionType = 'hocTwo';
var trueAction = {
type: '1'
};
var falseAction = {
type: '0'
};
function generateNestedAction(action) {
return {
type: hocOneActionType,
action: {
type: hocTwoActionType,
action: {
type: hocOneActionType,
action: action
}
}
};
}
var nestedTrueAction = generateNestedAction(trueAction);
var nestedFalseAction = generateNestedAction(falseAction);
expect(composedReducer({}, nestedTrueAction)).toBe(1);
expect(composedReducer({}, nestedFalseAction)).toBe(0);
});
});