speckoloo
Version:
Domain entites inspired by Speck
63 lines (47 loc) • 4.08 kB
JavaScript
;
var _ava = require('ava');
var _toJson = require('./to-json');
var _toJson2 = _interopRequireDefault(_toJson);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
(0, _ava.test)('Given data with same keys as schema, when toJSON is called, then is should return the same values', t => {
const schema = {
prop1: {},
prop2: {}
};
const data = {
prop1: 'a',
prop2: 'b'
};
const result = (0, _toJson2.default)(schema, data);
t.deepEqual(result, data);
});
(0, _ava.test)('Given data with more keys than schema, when toJSON is called, then is should return data stripped from the extra keys', t => {
const schema = {
prop1: {},
prop2: {}
};
const data = {
prop1: 'a',
prop2: 'b',
notInSchema: 'c'
};
const result = (0, _toJson2.default)(schema, data);
t.deepEqual(result, {
prop1: 'a',
prop2: 'b'
});
});
(0, _ava.test)('Given data with less keys than schema, when toJSON is called, then is should return data with none of the missing keys', t => {
const schema = {
prop1: {},
prop2: {}
};
const data = {
prop1: 'a'
};
const result = (0, _toJson2.default)(schema, data);
t.deepEqual(result, {
prop1: 'a'
});
});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90by1qc29uLnRlc3QuanMiXSwibmFtZXMiOlsidCIsInNjaGVtYSIsInByb3AxIiwicHJvcDIiLCJkYXRhIiwicmVzdWx0IiwiZGVlcEVxdWFsIiwibm90SW5TY2hlbWEiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBQ0E7Ozs7OztBQUVBLGVBQUssbUdBQUwsRUFBMEdBLEtBQUs7QUFDN0csUUFBTUMsU0FBUztBQUNiQyxXQUFPLEVBRE07QUFFYkMsV0FBTztBQUZNLEdBQWY7O0FBS0EsUUFBTUMsT0FBTztBQUNYRixXQUFPLEdBREk7QUFFWEMsV0FBTztBQUZJLEdBQWI7O0FBS0EsUUFBTUUsU0FBUyxzQkFBUUosTUFBUixFQUFnQkcsSUFBaEIsQ0FBZjs7QUFFQUosSUFBRU0sU0FBRixDQUFZRCxNQUFaLEVBQW9CRCxJQUFwQjtBQUNELENBZEQ7O0FBZ0JBLGVBQUssdUhBQUwsRUFBOEhKLEtBQUs7QUFDakksUUFBTUMsU0FBUztBQUNiQyxXQUFPLEVBRE07QUFFYkMsV0FBTztBQUZNLEdBQWY7O0FBS0EsUUFBTUMsT0FBTztBQUNYRixXQUFPLEdBREk7QUFFWEMsV0FBTyxHQUZJO0FBR1hJLGlCQUFhO0FBSEYsR0FBYjs7QUFNQSxRQUFNRixTQUFTLHNCQUFRSixNQUFSLEVBQWdCRyxJQUFoQixDQUFmOztBQUVBSixJQUFFTSxTQUFGLENBQVlELE1BQVosRUFBb0I7QUFDbEJILFdBQU8sR0FEVztBQUVsQkMsV0FBTztBQUZXLEdBQXBCO0FBSUQsQ0FsQkQ7O0FBb0JBLGVBQUssd0hBQUwsRUFBK0hILEtBQUs7QUFDbEksUUFBTUMsU0FBUztBQUNiQyxXQUFPLEVBRE07QUFFYkMsV0FBTztBQUZNLEdBQWY7O0FBS0EsUUFBTUMsT0FBTztBQUNYRixXQUFPO0FBREksR0FBYjs7QUFJQSxRQUFNRyxTQUFTLHNCQUFRSixNQUFSLEVBQWdCRyxJQUFoQixDQUFmOztBQUVBSixJQUFFTSxTQUFGLENBQVlELE1BQVosRUFBb0I7QUFDbEJILFdBQU87QUFEVyxHQUFwQjtBQUdELENBZkQiLCJmaWxlIjoidG8tanNvbi50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGVzdCB9IGZyb20gJ2F2YSdcbmltcG9ydCBzdWJqZWN0IGZyb20gJy4vdG8tanNvbidcblxudGVzdCgnR2l2ZW4gZGF0YSB3aXRoIHNhbWUga2V5cyBhcyBzY2hlbWEsIHdoZW4gdG9KU09OIGlzIGNhbGxlZCwgdGhlbiBpcyBzaG91bGQgcmV0dXJuIHRoZSBzYW1lIHZhbHVlcycsIHQgPT4ge1xuICBjb25zdCBzY2hlbWEgPSB7XG4gICAgcHJvcDE6IHt9LFxuICAgIHByb3AyOiB7fVxuICB9XG5cbiAgY29uc3QgZGF0YSA9IHtcbiAgICBwcm9wMTogJ2EnLFxuICAgIHByb3AyOiAnYidcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdCA9IHN1YmplY3Qoc2NoZW1hLCBkYXRhKVxuXG4gIHQuZGVlcEVxdWFsKHJlc3VsdCwgZGF0YSlcbn0pXG5cbnRlc3QoJ0dpdmVuIGRhdGEgd2l0aCBtb3JlIGtleXMgdGhhbiBzY2hlbWEsIHdoZW4gdG9KU09OIGlzIGNhbGxlZCwgdGhlbiBpcyBzaG91bGQgcmV0dXJuIGRhdGEgc3RyaXBwZWQgZnJvbSB0aGUgZXh0cmEga2V5cycsIHQgPT4ge1xuICBjb25zdCBzY2hlbWEgPSB7XG4gICAgcHJvcDE6IHt9LFxuICAgIHByb3AyOiB7fVxuICB9XG5cbiAgY29uc3QgZGF0YSA9IHtcbiAgICBwcm9wMTogJ2EnLFxuICAgIHByb3AyOiAnYicsXG4gICAgbm90SW5TY2hlbWE6ICdjJ1xuICB9XG5cbiAgY29uc3QgcmVzdWx0ID0gc3ViamVjdChzY2hlbWEsIGRhdGEpXG5cbiAgdC5kZWVwRXF1YWwocmVzdWx0LCB7XG4gICAgcHJvcDE6ICdhJyxcbiAgICBwcm9wMjogJ2InXG4gIH0pXG59KVxuXG50ZXN0KCdHaXZlbiBkYXRhIHdpdGggbGVzcyBrZXlzIHRoYW4gc2NoZW1hLCB3aGVuIHRvSlNPTiBpcyBjYWxsZWQsIHRoZW4gaXMgc2hvdWxkIHJldHVybiBkYXRhIHdpdGggbm9uZSBvZiB0aGUgbWlzc2luZyBrZXlzJywgdCA9PiB7XG4gIGNvbnN0IHNjaGVtYSA9IHtcbiAgICBwcm9wMToge30sXG4gICAgcHJvcDI6IHt9XG4gIH1cblxuICBjb25zdCBkYXRhID0ge1xuICAgIHByb3AxOiAnYSdcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdCA9IHN1YmplY3Qoc2NoZW1hLCBkYXRhKVxuXG4gIHQuZGVlcEVxdWFsKHJlc3VsdCwge1xuICAgIHByb3AxOiAnYSdcbiAgfSlcbn0pXG4iXX0=