UNPKG

redux-form

Version:

A higher order component decorator for forms using Redux and React

86 lines (73 loc) 3.55 kB
'use strict'; var _expect = require('expect'); var _expect2 = _interopRequireDefault(_expect); var _wrapMapStateToProps = require('../wrapMapStateToProps'); var _wrapMapStateToProps2 = _interopRequireDefault(_wrapMapStateToProps); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } describe('wrapMapStateToProps', function () { it('should save form if no mapStateToProps given', function () { var getForm = (0, _expect.createSpy)().andReturn('foo'); var result = (0, _wrapMapStateToProps2.default)(undefined, getForm); (0, _expect2.default)(result).toBeA('function'); (0, _expect2.default)(result.length).toBe(1); var mapped = result('bar'); (0, _expect2.default)(getForm).toHaveBeenCalled().toHaveBeenCalledWith('bar'); (0, _expect2.default)(mapped).toEqual({ form: 'foo' }); }); it('should throw error when mapStateToProps is not a function', function () { var getForm = (0, _expect.createSpy)(); (0, _expect2.default)(function () { return (0, _wrapMapStateToProps2.default)(true, getForm); }).toThrow('mapStateToProps must be a function'); (0, _expect2.default)(function () { return (0, _wrapMapStateToProps2.default)(42, getForm); }).toThrow('mapStateToProps must be a function'); (0, _expect2.default)(function () { return (0, _wrapMapStateToProps2.default)({}, getForm); }).toThrow('mapStateToProps must be a function'); (0, _expect2.default)(function () { return (0, _wrapMapStateToProps2.default)([], getForm); }).toThrow('mapStateToProps must be a function'); (0, _expect2.default)(getForm).toNotHaveBeenCalled(); }); it('should call mapStateToProps when one-param function given', function () { var getForm = (0, _expect.createSpy)().andReturn('foo'); var mapStateToPropsSpy = (0, _expect.createSpy)().andReturn({ a: 42, b: true, c: 'baz' }); var mapStateToProps = function mapStateToProps(state) { return mapStateToPropsSpy(state); }; (0, _expect2.default)(mapStateToProps.length).toBe(1); var result = (0, _wrapMapStateToProps2.default)(mapStateToProps, getForm); (0, _expect2.default)(result).toBeA('function'); (0, _expect2.default)(result.length).toBe(1); var mapped = result('bar'); (0, _expect2.default)(mapStateToPropsSpy).toHaveBeenCalled().toHaveBeenCalledWith('bar'); (0, _expect2.default)(getForm).toHaveBeenCalled().toHaveBeenCalledWith('bar'); (0, _expect2.default)(mapped).toEqual({ a: 42, b: true, c: 'baz', form: 'foo' }); }); it('should call mapStateToProps when two-param function given', function () { var getForm = (0, _expect.createSpy)().andReturn('foo'); var mapStateToPropsSpy = (0, _expect.createSpy)().andReturn({ a: 42, b: true, c: 'baz' }); var mapStateToProps = function mapStateToProps(state, ownProps) { return mapStateToPropsSpy(state, ownProps); }; (0, _expect2.default)(mapStateToProps.length).toBe(2); var result = (0, _wrapMapStateToProps2.default)(mapStateToProps, getForm); (0, _expect2.default)(result).toBeA('function'); (0, _expect2.default)(result.length).toBe(2); var mapped = result('bar', 'dog'); (0, _expect2.default)(mapStateToPropsSpy).toHaveBeenCalled().toHaveBeenCalledWith('bar', 'dog'); (0, _expect2.default)(getForm).toHaveBeenCalled().toHaveBeenCalledWith('bar'); (0, _expect2.default)(mapped).toEqual({ a: 42, b: true, c: 'baz', form: 'foo' }); }); });