redux-form
Version:
A higher order component decorator for forms using Redux and React
55 lines (45 loc) • 1.8 kB
JavaScript
;
var _expect = require('expect');
var _expect2 = _interopRequireDefault(_expect);
var _getIn = require('../getIn');
var _getIn2 = _interopRequireDefault(_getIn);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
describe('structure.plain.getIn', function () {
it('should return undefined if state is undefined', function () {
(0, _expect2.default)((0, _getIn2.default)(undefined, 'dog')).toBe(undefined);
});
it('should return undefined if any step on the path is undefined', function () {
(0, _expect2.default)((0, _getIn2.default)({
a: {
b: {}
}
}, 'a.b.c')).toBe(undefined);
});
it('should get shallow values', function () {
(0, _expect2.default)((0, _getIn2.default)({ foo: 'bar' }, 'foo')).toBe('bar');
(0, _expect2.default)((0, _getIn2.default)({ foo: 42 }, 'foo')).toBe(42);
(0, _expect2.default)((0, _getIn2.default)({ foo: false }, 'foo')).toBe(false);
});
it('should get deep values', function () {
var state = {
foo: {
bar: ['baz', { dog: 42 }]
}
};
(0, _expect2.default)((0, _getIn2.default)(state, 'foo.bar[0]')).toBe('baz');
(0, _expect2.default)((0, _getIn2.default)(state, 'foo.bar[1].dog')).toBe(42);
});
it('should get string keys on arrays', function () {
var array = [1, 2, 3];
array.stringKey = 'hello';
var state = {
foo: {
bar: array
}
};
(0, _expect2.default)((0, _getIn2.default)(state, 'foo.bar[0]')).toBe(1);
(0, _expect2.default)((0, _getIn2.default)(state, 'foo.bar[1]')).toBe(2);
(0, _expect2.default)((0, _getIn2.default)(state, 'foo.bar[2]')).toBe(3);
(0, _expect2.default)((0, _getIn2.default)(state, 'foo.bar.stringKey')).toBe('hello');
});
});