UNPKG

redux-compose-hors

Version:
63 lines (57 loc) 1.67 kB
'use strict'; 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); }); });