@deskpro/react-forms
Version:
Forms library for React
98 lines (80 loc) • 4.72 kB
JavaScript
;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /**
* @copyright 2015, Prometheus Research, LLC
*/
var _update = require('../update');
describe('react-forms', function () {
describe('update', function () {
it('updates values', function () {
assert.deepEqual((0, _update.update)({}, [], 1), 1);
assert.deepEqual((0, _update.update)({}, ['a'], 1), { a: 1 });
assert.deepEqual((0, _update.update)({ a: 2 }, ['a'], 1), { a: 1 });
assert.deepEqual((0, _update.update)({ b: 2 }, ['a'], 1), { a: 1, b: 2 });
assert.deepEqual((0, _update.update)(undefined, ['a'], 1), { a: 1 });
assert.deepEqual((0, _update.update)(null, ['a'], 1), { a: 1 });
assert.deepEqual((0, _update.update)({}, ['a', 'b'], 1), { a: { b: 1 } });
assert.deepEqual((0, _update.update)({ a: { b: 2 } }, ['a', 'b'], 1), { a: { b: 1 } });
assert.deepEqual((0, _update.update)({ a: { a: 2 } }, ['a', 'b'], 1), { a: { a: 2, b: 1 } });
assert.deepEqual((0, _update.update)(undefined, ['a', 'b'], 1), { a: { b: 1 } });
assert.deepEqual((0, _update.update)(null, ['a', 'b'], 1), { a: { b: 1 } });
assert.deepEqual((0, _update.update)({}, ['a', 0], 1), { a: [1] });
assert.deepEqual((0, _update.update)(null, ['a', 0], 1), { a: [1] });
assert.deepEqual((0, _update.update)(undefined, ['a', 0], 1), { a: [1] });
assert.deepEqual((0, _update.update)({ a: [] }, ['a', 0], 1), { a: [1] });
assert.deepEqual((0, _update.update)({ a: [2] }, ['a', 0], 1), { a: [1] });
assert.deepEqual((0, _update.update)({ a: [2] }, ['a', 1], 1), { a: [2, 1] });
assert.deepEqual((0, _update.update)({}, ['a', 0, 'b'], 1), { a: [{ b: 1 }] });
assert.deepEqual((0, _update.update)(null, ['a', 0, 'b'], 1), { a: [{ b: 1 }] });
assert.deepEqual((0, _update.update)(undefined, ['a', 0, 'b'], 1), { a: [{ b: 1 }] });
assert.deepEqual((0, _update.update)({ a: null }, ['a', 0, 'b'], 1), { a: [{ b: 1 }] });
assert.deepEqual((0, _update.update)({ a: undefined }, ['a', 0, 'b'], 1), { a: [{ b: 1 }] });
assert.deepEqual((0, _update.update)({ a: [] }, ['a', 0, 'b'], 1), { a: [{ b: 1 }] });
assert.deepEqual((0, _update.update)({ a: [{ b: null }] }, ['a', 0, 'b'], 1), { a: [{ b: 1 }] });
assert.deepEqual((0, _update.update)({ a: [{ b: undefined }] }, ['a', 0, 'b'], 1), { a: [{ b: 1 }] });
assert.deepEqual((0, _update.update)({ a: [2] }, ['a', 0], 1), { a: [1] });
assert.deepEqual((0, _update.update)({ a: [2] }, ['a', 1], 1), { a: [2, 1] });
assert.deepEqual((0, _update.update)([], [0], 1), [1]);
assert.deepEqual((0, _update.update)(null, [0], 1), [1]);
assert.deepEqual((0, _update.update)(undefined, [0], 1), [1]);
assert.deepEqual((0, _update.update)([0], [0], 1), [1]);
assert.deepEqual((0, _update.update)([0], [1], 1), [0, 1]);
});
it('executes onUpdate hooks', function () {
var schema = {
onUpdate: function onUpdate(value, _ref) {
var key = _ref.key,
schema = _ref.schema;
return _extends({}, value, { tag: 'data', key: key });
},
properties: {
a: {
onUpdate: function onUpdate(value, _ref2) {
var key = _ref2.key,
schema = _ref2.schema;
return _extends({}, value, { tag: 'a', key: key });
},
properties: {
b: {
onUpdate: function onUpdate(value, _ref3) {
var key = _ref3.key,
schema = _ref3.schema;
assert(key === undefined);
return value + '!';
}
}
}
}
}
};
assert.deepEqual((0, _update.update)({}, ['a', 'b'], 'ok', schema), {
a: {
b: 'ok!',
key: 'b',
tag: 'a'
},
key: 'a',
tag: 'data'
});
});
});
});