aquameta-datum
Version:
Service layer for the Aquameta database API
71 lines • 7.53 kB
JavaScript
import { compose } from 'ramda';
import test from 'tape';
import { relation, where, whereSimilarTo, whereNull } from '../../database/chainable.js';
const rel = relation('widget.widget');
test('#where - #equals - adds proper where object to args', t => {
const name = 'name';
const op = '=';
const value = 'my_widget';
const query = where(name, value)(rel);
t.true(query.args.where instanceof Array);
t.is(typeof query.args.where[0], 'object');
t.deepEqual(query.args.where[0], {
name,
op,
value
});
t.end();
});
test('#where - #equals - can be called with all arguments', t => {
const name = 'name';
const op = '=';
const value = 'my_widget';
const query = where(name, value, rel);
t.deepEqual(query.args.where[0], {
name,
op,
value
});
t.end();
});
test('#where - #equals - adds to existing where array', t => {
const name = 'html';
const op = '=';
const value = '<template></template>';
const query = compose(where(name, value), where('name', 'my_widget'))(rel);
t.deepEqual(query.args.where, [{
name: 'name',
op: '=',
value: 'my_widget'
}, {
name,
op,
value
}]);
t.end();
});
test('#where - #similarTo - adds proper where object to args', t => {
const name = 'name';
const op = 'similar to';
const value = '%my_widget';
const query = whereSimilarTo(name, value)(rel);
t.deepEqual(query.args.where[0], {
name,
op,
value
});
t.end();
});
test('#where - #null - adds proper where object to args', t => {
const name = 'name';
const op = 'is';
const value = null;
const query = whereNull(name)(rel);
t.deepEqual(query.args.where[0], {
name,
op,
value
});
t.end();
});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNoYWluYWJsZS13aGVyZS5qcyJdLCJuYW1lcyI6WyJjb21wb3NlIiwidGVzdCIsInJlbGF0aW9uIiwid2hlcmUiLCJ3aGVyZVNpbWlsYXJUbyIsIndoZXJlTnVsbCIsInJlbCIsInQiLCJuYW1lIiwib3AiLCJ2YWx1ZSIsInF1ZXJ5IiwidHJ1ZSIsImFyZ3MiLCJBcnJheSIsImlzIiwiZGVlcEVxdWFsIiwiZW5kIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFRQSxPQUFSLFFBQXNCLE9BQXRCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixNQUFqQjtBQUNBLFNBQ0VDLFFBREYsRUFFRUMsS0FGRixFQUdFQyxjQUhGLEVBSUVDLFNBSkYsUUFLTyw2QkFMUDtBQU9BLE1BQU1DLEdBQUcsR0FBR0osUUFBUSxDQUFDLGVBQUQsQ0FBcEI7QUFFQUQsSUFBSSxDQUFDLHFEQUFELEVBQXdETSxDQUFDLElBQUk7QUFDL0QsUUFBTUMsSUFBSSxHQUFHLE1BQWI7QUFDQSxRQUFNQyxFQUFFLEdBQUcsR0FBWDtBQUNBLFFBQU1DLEtBQUssR0FBRyxXQUFkO0FBRUEsUUFBTUMsS0FBSyxHQUFHUixLQUFLLENBQUNLLElBQUQsRUFBT0UsS0FBUCxDQUFMLENBQW1CSixHQUFuQixDQUFkO0FBRUFDLEVBQUFBLENBQUMsQ0FBQ0ssSUFBRixDQUFPRCxLQUFLLENBQUNFLElBQU4sQ0FBV1YsS0FBWCxZQUE0QlcsS0FBbkM7QUFDQVAsRUFBQUEsQ0FBQyxDQUFDUSxFQUFGLENBQUssT0FBT0osS0FBSyxDQUFDRSxJQUFOLENBQVdWLEtBQVgsQ0FBaUIsQ0FBakIsQ0FBWixFQUFpQyxRQUFqQztBQUNBSSxFQUFBQSxDQUFDLENBQUNTLFNBQUYsQ0FBWUwsS0FBSyxDQUFDRSxJQUFOLENBQVdWLEtBQVgsQ0FBaUIsQ0FBakIsQ0FBWixFQUFpQztBQUFDSyxJQUFBQSxJQUFEO0FBQU9DLElBQUFBLEVBQVA7QUFBV0MsSUFBQUE7QUFBWCxHQUFqQztBQUNBSCxFQUFBQSxDQUFDLENBQUNVLEdBQUY7QUFDRCxDQVhHLENBQUo7QUFhQWhCLElBQUksQ0FBQyxxREFBRCxFQUF3RE0sQ0FBQyxJQUFJO0FBQy9ELFFBQU1DLElBQUksR0FBRyxNQUFiO0FBQ0EsUUFBTUMsRUFBRSxHQUFHLEdBQVg7QUFDQSxRQUFNQyxLQUFLLEdBQUcsV0FBZDtBQUVBLFFBQU1DLEtBQUssR0FBR1IsS0FBSyxDQUFDSyxJQUFELEVBQU9FLEtBQVAsRUFBY0osR0FBZCxDQUFuQjtBQUVBQyxFQUFBQSxDQUFDLENBQUNTLFNBQUYsQ0FBWUwsS0FBSyxDQUFDRSxJQUFOLENBQVdWLEtBQVgsQ0FBaUIsQ0FBakIsQ0FBWixFQUFpQztBQUFDSyxJQUFBQSxJQUFEO0FBQU9DLElBQUFBLEVBQVA7QUFBV0MsSUFBQUE7QUFBWCxHQUFqQztBQUNBSCxFQUFBQSxDQUFDLENBQUNVLEdBQUY7QUFDRCxDQVRHLENBQUo7QUFXQWhCLElBQUksQ0FBQyxpREFBRCxFQUFvRE0sQ0FBQyxJQUFJO0FBQzNELFFBQU1DLElBQUksR0FBRyxNQUFiO0FBQ0EsUUFBTUMsRUFBRSxHQUFHLEdBQVg7QUFDQSxRQUFNQyxLQUFLLEdBQUcsdUJBQWQ7QUFFQSxRQUFNQyxLQUFLLEdBQUdYLE9BQU8sQ0FDbkJHLEtBQUssQ0FBQ0ssSUFBRCxFQUFPRSxLQUFQLENBRGMsRUFFbkJQLEtBQUssQ0FBQyxNQUFELEVBQVMsV0FBVCxDQUZjLENBQVAsQ0FHWkcsR0FIWSxDQUFkO0FBS0FDLEVBQUFBLENBQUMsQ0FBQ1MsU0FBRixDQUFZTCxLQUFLLENBQUNFLElBQU4sQ0FBV1YsS0FBdkIsRUFBOEIsQ0FDNUI7QUFBQ0ssSUFBQUEsSUFBSSxFQUFFLE1BQVA7QUFBZUMsSUFBQUEsRUFBRSxFQUFFLEdBQW5CO0FBQXdCQyxJQUFBQSxLQUFLLEVBQUU7QUFBL0IsR0FENEIsRUFFNUI7QUFBQ0YsSUFBQUEsSUFBRDtBQUFPQyxJQUFBQSxFQUFQO0FBQVdDLElBQUFBO0FBQVgsR0FGNEIsQ0FBOUI7QUFJQUgsRUFBQUEsQ0FBQyxDQUFDVSxHQUFGO0FBQ0QsQ0FmRyxDQUFKO0FBaUJBaEIsSUFBSSxDQUFDLHdEQUFELEVBQTJETSxDQUFDLElBQUk7QUFDbEUsUUFBTUMsSUFBSSxHQUFHLE1BQWI7QUFDQSxRQUFNQyxFQUFFLEdBQUcsWUFBWDtBQUNBLFFBQU1DLEtBQUssR0FBRyxZQUFkO0FBRUEsUUFBTUMsS0FBSyxHQUFHUCxjQUFjLENBQUNJLElBQUQsRUFBT0UsS0FBUCxDQUFkLENBQTRCSixHQUE1QixDQUFkO0FBRUFDLEVBQUFBLENBQUMsQ0FBQ1MsU0FBRixDQUFZTCxLQUFLLENBQUNFLElBQU4sQ0FBV1YsS0FBWCxDQUFpQixDQUFqQixDQUFaLEVBQWlDO0FBQUNLLElBQUFBLElBQUQ7QUFBT0MsSUFBQUEsRUFBUDtBQUFXQyxJQUFBQTtBQUFYLEdBQWpDO0FBQ0FILEVBQUFBLENBQUMsQ0FBQ1UsR0FBRjtBQUNELENBVEcsQ0FBSjtBQVdBaEIsSUFBSSxDQUFDLG1EQUFELEVBQXNETSxDQUFDLElBQUk7QUFDN0QsUUFBTUMsSUFBSSxHQUFHLE1BQWI7QUFDQSxRQUFNQyxFQUFFLEdBQUcsSUFBWDtBQUNBLFFBQU1DLEtBQUssR0FBRyxJQUFkO0FBRUEsUUFBTUMsS0FBSyxHQUFHTixTQUFTLENBQUNHLElBQUQsQ0FBVCxDQUFnQkYsR0FBaEIsQ0FBZDtBQUVBQyxFQUFBQSxDQUFDLENBQUNTLFNBQUYsQ0FBWUwsS0FBSyxDQUFDRSxJQUFOLENBQVdWLEtBQVgsQ0FBaUIsQ0FBakIsQ0FBWixFQUFpQztBQUFDSyxJQUFBQSxJQUFEO0FBQU9DLElBQUFBLEVBQVA7QUFBV0MsSUFBQUE7QUFBWCxHQUFqQztBQUNBSCxFQUFBQSxDQUFDLENBQUNVLEdBQUY7QUFDRCxDQVRHLENBQUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NvbXBvc2V9IGZyb20gJ3JhbWRhJztcbmltcG9ydCB0ZXN0IGZyb20gJ3RhcGUnO1xuaW1wb3J0IHtcbiAgcmVsYXRpb24sXG4gIHdoZXJlLFxuICB3aGVyZVNpbWlsYXJUbyxcbiAgd2hlcmVOdWxsLFxufSBmcm9tICcuLi8uLi9kYXRhYmFzZS9jaGFpbmFibGUuanMnO1xuXG5jb25zdCByZWwgPSByZWxhdGlvbignd2lkZ2V0LndpZGdldCcpO1xuXG50ZXN0KCcjd2hlcmUgLSAjZXF1YWxzIC0gYWRkcyBwcm9wZXIgd2hlcmUgb2JqZWN0IHRvIGFyZ3MnLCB0ID0+IHtcbiAgY29uc3QgbmFtZSA9ICduYW1lJztcbiAgY29uc3Qgb3AgPSAnPSc7XG4gIGNvbnN0IHZhbHVlID0gJ215X3dpZGdldCc7XG5cbiAgY29uc3QgcXVlcnkgPSB3aGVyZShuYW1lLCB2YWx1ZSkocmVsKTtcblxuICB0LnRydWUocXVlcnkuYXJncy53aGVyZSBpbnN0YW5jZW9mIEFycmF5KTtcbiAgdC5pcyh0eXBlb2YgcXVlcnkuYXJncy53aGVyZVswXSwgJ29iamVjdCcpO1xuICB0LmRlZXBFcXVhbChxdWVyeS5hcmdzLndoZXJlWzBdLCB7bmFtZSwgb3AsIHZhbHVlfSk7XG4gIHQuZW5kKCk7XG59KTtcblxudGVzdCgnI3doZXJlIC0gI2VxdWFscyAtIGNhbiBiZSBjYWxsZWQgd2l0aCBhbGwgYXJndW1lbnRzJywgdCA9PiB7XG4gIGNvbnN0IG5hbWUgPSAnbmFtZSc7XG4gIGNvbnN0IG9wID0gJz0nO1xuICBjb25zdCB2YWx1ZSA9ICdteV93aWRnZXQnO1xuXG4gIGNvbnN0IHF1ZXJ5ID0gd2hlcmUobmFtZSwgdmFsdWUsIHJlbCk7XG5cbiAgdC5kZWVwRXF1YWwocXVlcnkuYXJncy53aGVyZVswXSwge25hbWUsIG9wLCB2YWx1ZX0pO1xuICB0LmVuZCgpO1xufSk7XG5cbnRlc3QoJyN3aGVyZSAtICNlcXVhbHMgLSBhZGRzIHRvIGV4aXN0aW5nIHdoZXJlIGFycmF5JywgdCA9PiB7XG4gIGNvbnN0IG5hbWUgPSAnaHRtbCc7XG4gIGNvbnN0IG9wID0gJz0nO1xuICBjb25zdCB2YWx1ZSA9ICc8dGVtcGxhdGU+PC90ZW1wbGF0ZT4nO1xuXG4gIGNvbnN0IHF1ZXJ5ID0gY29tcG9zZShcbiAgICB3aGVyZShuYW1lLCB2YWx1ZSksXG4gICAgd2hlcmUoJ25hbWUnLCAnbXlfd2lkZ2V0JyksXG4gICkocmVsKTtcblxuICB0LmRlZXBFcXVhbChxdWVyeS5hcmdzLndoZXJlLCBbXG4gICAge25hbWU6ICduYW1lJywgb3A6ICc9JywgdmFsdWU6ICdteV93aWRnZXQnfSxcbiAgICB7bmFtZSwgb3AsIHZhbHVlfSxcbiAgXSk7XG4gIHQuZW5kKCk7XG59KTtcblxudGVzdCgnI3doZXJlIC0gI3NpbWlsYXJUbyAtIGFkZHMgcHJvcGVyIHdoZXJlIG9iamVjdCB0byBhcmdzJywgdCA9PiB7XG4gIGNvbnN0IG5hbWUgPSAnbmFtZSc7XG4gIGNvbnN0IG9wID0gJ3NpbWlsYXIgdG8nO1xuICBjb25zdCB2YWx1ZSA9ICclbXlfd2lkZ2V0JztcblxuICBjb25zdCBxdWVyeSA9IHdoZXJlU2ltaWxhclRvKG5hbWUsIHZhbHVlKShyZWwpO1xuXG4gIHQuZGVlcEVxdWFsKHF1ZXJ5LmFyZ3Mud2hlcmVbMF0sIHtuYW1lLCBvcCwgdmFsdWV9KTtcbiAgdC5lbmQoKTtcbn0pO1xuXG50ZXN0KCcjd2hlcmUgLSAjbnVsbCAtIGFkZHMgcHJvcGVyIHdoZXJlIG9iamVjdCB0byBhcmdzJywgdCA9PiB7XG4gIGNvbnN0IG5hbWUgPSAnbmFtZSc7XG4gIGNvbnN0IG9wID0gJ2lzJztcbiAgY29uc3QgdmFsdWUgPSBudWxsO1xuXG4gIGNvbnN0IHF1ZXJ5ID0gd2hlcmVOdWxsKG5hbWUpKHJlbCk7XG5cbiAgdC5kZWVwRXF1YWwocXVlcnkuYXJncy53aGVyZVswXSwge25hbWUsIG9wLCB2YWx1ZX0pO1xuICB0LmVuZCgpO1xufSk7XG4iXX0=