UNPKG

aquameta-datum

Version:

Service layer for the Aquameta database API

46 lines 6.71 kB
import { compose } from 'ramda'; import test from 'tape'; import { relation, order, orderByAsc, orderByDesc, limit, exclude } from '../../database/chainable.js'; const rel = relation('widget.widget'); test('#order - adds proper object to args', t => { const column = 'name'; const direction = 'asc'; const query = order(direction, column)(rel); t.true(query.args.order instanceof Array); t.is(query.args.order[0].column, column); t.is(query.args.order[0].direction, direction); t.end(); }); test('#order - asc/desc add value', t => { const ascColumn = 'name'; const descColumn = 'updated_at'; const query = compose(orderByAsc(ascColumn), orderByDesc(descColumn))(rel); t.true(query.args.order instanceof Array); t.deepEqual(query.args.order, [{ column: descColumn, direction: 'desc' }, { column: ascColumn, direction: 'asc' }]); t.end(); }); test('#exclude - adds array values', t => { const columns = ['id', 'name']; const query = compose(exclude(columns[1]), exclude(columns[0]))(rel); t.true(query.args.exclude instanceof Array); t.deepEqual(query.args.exclude, [columns]); t.end(); }); test('#limit - adds value to args', t => { const value = '5'; const query = limit(value)(rel); t.is(query.args.limit, value); t.end(); }); test('#limit - throws on invalid input', t => { const value = null; t.throws(() => limit(value)(rel), TypeError); t.end(); }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNoYWluYWJsZS5qcyJdLCJuYW1lcyI6WyJjb21wb3NlIiwidGVzdCIsInJlbGF0aW9uIiwib3JkZXIiLCJvcmRlckJ5QXNjIiwib3JkZXJCeURlc2MiLCJsaW1pdCIsImV4Y2x1ZGUiLCJyZWwiLCJ0IiwiY29sdW1uIiwiZGlyZWN0aW9uIiwicXVlcnkiLCJ0cnVlIiwiYXJncyIsIkFycmF5IiwiaXMiLCJlbmQiLCJhc2NDb2x1bW4iLCJkZXNjQ29sdW1uIiwiZGVlcEVxdWFsIiwiY29sdW1ucyIsInZhbHVlIiwidGhyb3dzIiwiVHlwZUVycm9yIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFRQSxPQUFSLFFBQXNCLE9BQXRCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixNQUFqQjtBQUNBLFNBQ0VDLFFBREYsRUFFRUMsS0FGRixFQUdFQyxVQUhGLEVBSUVDLFdBSkYsRUFLRUMsS0FMRixFQU1FQyxPQU5GLFFBT08sNkJBUFA7QUFTQSxNQUFNQyxHQUFHLEdBQUdOLFFBQVEsQ0FBQyxlQUFELENBQXBCO0FBRUFELElBQUksQ0FBQyxxQ0FBRCxFQUF3Q1EsQ0FBQyxJQUFJO0FBQy9DLFFBQU1DLE1BQU0sR0FBRyxNQUFmO0FBQ0EsUUFBTUMsU0FBUyxHQUFHLEtBQWxCO0FBRUEsUUFBTUMsS0FBSyxHQUFHVCxLQUFLLENBQUNRLFNBQUQsRUFBWUQsTUFBWixDQUFMLENBQXlCRixHQUF6QixDQUFkO0FBRUFDLEVBQUFBLENBQUMsQ0FBQ0ksSUFBRixDQUFPRCxLQUFLLENBQUNFLElBQU4sQ0FBV1gsS0FBWCxZQUE0QlksS0FBbkM7QUFDQU4sRUFBQUEsQ0FBQyxDQUFDTyxFQUFGLENBQUtKLEtBQUssQ0FBQ0UsSUFBTixDQUFXWCxLQUFYLENBQWlCLENBQWpCLEVBQW9CTyxNQUF6QixFQUFpQ0EsTUFBakM7QUFDQUQsRUFBQUEsQ0FBQyxDQUFDTyxFQUFGLENBQUtKLEtBQUssQ0FBQ0UsSUFBTixDQUFXWCxLQUFYLENBQWlCLENBQWpCLEVBQW9CUSxTQUF6QixFQUFvQ0EsU0FBcEM7QUFDQUYsRUFBQUEsQ0FBQyxDQUFDUSxHQUFGO0FBQ0QsQ0FWRyxDQUFKO0FBWUFoQixJQUFJLENBQUMsNkJBQUQsRUFBZ0NRLENBQUMsSUFBSTtBQUN2QyxRQUFNUyxTQUFTLEdBQUcsTUFBbEI7QUFDQSxRQUFNQyxVQUFVLEdBQUcsWUFBbkI7QUFFQSxRQUFNUCxLQUFLLEdBQUdaLE9BQU8sQ0FDbkJJLFVBQVUsQ0FBQ2MsU0FBRCxDQURTLEVBRW5CYixXQUFXLENBQUNjLFVBQUQsQ0FGUSxDQUFQLENBR1pYLEdBSFksQ0FBZDtBQUtBQyxFQUFBQSxDQUFDLENBQUNJLElBQUYsQ0FBT0QsS0FBSyxDQUFDRSxJQUFOLENBQVdYLEtBQVgsWUFBNEJZLEtBQW5DO0FBQ0FOLEVBQUFBLENBQUMsQ0FBQ1csU0FBRixDQUFZUixLQUFLLENBQUNFLElBQU4sQ0FBV1gsS0FBdkIsRUFBOEIsQ0FDNUI7QUFBQ08sSUFBQUEsTUFBTSxFQUFFUyxVQUFUO0FBQXFCUixJQUFBQSxTQUFTLEVBQUU7QUFBaEMsR0FENEIsRUFFNUI7QUFBQ0QsSUFBQUEsTUFBTSxFQUFFUSxTQUFUO0FBQW9CUCxJQUFBQSxTQUFTLEVBQUU7QUFBL0IsR0FGNEIsQ0FBOUI7QUFJQUYsRUFBQUEsQ0FBQyxDQUFDUSxHQUFGO0FBQ0QsQ0FmRyxDQUFKO0FBaUJBaEIsSUFBSSxDQUFDLDhCQUFELEVBQWlDUSxDQUFDLElBQUk7QUFDeEMsUUFBTVksT0FBTyxHQUFHLENBQUMsSUFBRCxFQUFPLE1BQVAsQ0FBaEI7QUFFQSxRQUFNVCxLQUFLLEdBQUdaLE9BQU8sQ0FDbkJPLE9BQU8sQ0FBQ2MsT0FBTyxDQUFDLENBQUQsQ0FBUixDQURZLEVBRW5CZCxPQUFPLENBQUNjLE9BQU8sQ0FBQyxDQUFELENBQVIsQ0FGWSxDQUFQLENBR1piLEdBSFksQ0FBZDtBQUtBQyxFQUFBQSxDQUFDLENBQUNJLElBQUYsQ0FBT0QsS0FBSyxDQUFDRSxJQUFOLENBQVdQLE9BQVgsWUFBOEJRLEtBQXJDO0FBQ0FOLEVBQUFBLENBQUMsQ0FBQ1csU0FBRixDQUFZUixLQUFLLENBQUNFLElBQU4sQ0FBV1AsT0FBdkIsRUFBZ0MsQ0FBQ2MsT0FBRCxDQUFoQztBQUNBWixFQUFBQSxDQUFDLENBQUNRLEdBQUY7QUFDRCxDQVhHLENBQUo7QUFhQWhCLElBQUksQ0FBQyw2QkFBRCxFQUFnQ1EsQ0FBQyxJQUFJO0FBQ3ZDLFFBQU1hLEtBQUssR0FBRyxHQUFkO0FBRUEsUUFBTVYsS0FBSyxHQUFHTixLQUFLLENBQUNnQixLQUFELENBQUwsQ0FBYWQsR0FBYixDQUFkO0FBRUFDLEVBQUFBLENBQUMsQ0FBQ08sRUFBRixDQUFLSixLQUFLLENBQUNFLElBQU4sQ0FBV1IsS0FBaEIsRUFBdUJnQixLQUF2QjtBQUNBYixFQUFBQSxDQUFDLENBQUNRLEdBQUY7QUFDRCxDQVBHLENBQUo7QUFTQWhCLElBQUksQ0FBQyxrQ0FBRCxFQUFxQ1EsQ0FBQyxJQUFJO0FBQzVDLFFBQU1hLEtBQUssR0FBRyxJQUFkO0FBRUFiLEVBQUFBLENBQUMsQ0FBQ2MsTUFBRixDQUFTLE1BQU1qQixLQUFLLENBQUNnQixLQUFELENBQUwsQ0FBYWQsR0FBYixDQUFmLEVBQWtDZ0IsU0FBbEM7QUFDQWYsRUFBQUEsQ0FBQyxDQUFDUSxHQUFGO0FBQ0QsQ0FMRyxDQUFKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjb21wb3NlfSBmcm9tICdyYW1kYSc7XG5pbXBvcnQgdGVzdCBmcm9tICd0YXBlJztcbmltcG9ydCB7XG4gIHJlbGF0aW9uLFxuICBvcmRlcixcbiAgb3JkZXJCeUFzYyxcbiAgb3JkZXJCeURlc2MsXG4gIGxpbWl0LFxuICBleGNsdWRlLFxufSBmcm9tICcuLi8uLi9kYXRhYmFzZS9jaGFpbmFibGUuanMnO1xuXG5jb25zdCByZWwgPSByZWxhdGlvbignd2lkZ2V0LndpZGdldCcpO1xuXG50ZXN0KCcjb3JkZXIgLSBhZGRzIHByb3BlciBvYmplY3QgdG8gYXJncycsIHQgPT4ge1xuICBjb25zdCBjb2x1bW4gPSAnbmFtZSc7XG4gIGNvbnN0IGRpcmVjdGlvbiA9ICdhc2MnO1xuXG4gIGNvbnN0IHF1ZXJ5ID0gb3JkZXIoZGlyZWN0aW9uLCBjb2x1bW4pKHJlbCk7XG5cbiAgdC50cnVlKHF1ZXJ5LmFyZ3Mub3JkZXIgaW5zdGFuY2VvZiBBcnJheSk7XG4gIHQuaXMocXVlcnkuYXJncy5vcmRlclswXS5jb2x1bW4sIGNvbHVtbik7XG4gIHQuaXMocXVlcnkuYXJncy5vcmRlclswXS5kaXJlY3Rpb24sIGRpcmVjdGlvbik7XG4gIHQuZW5kKCk7XG59KTtcblxudGVzdCgnI29yZGVyIC0gYXNjL2Rlc2MgYWRkIHZhbHVlJywgdCA9PiB7XG4gIGNvbnN0IGFzY0NvbHVtbiA9ICduYW1lJztcbiAgY29uc3QgZGVzY0NvbHVtbiA9ICd1cGRhdGVkX2F0JztcblxuICBjb25zdCBxdWVyeSA9IGNvbXBvc2UoXG4gICAgb3JkZXJCeUFzYyhhc2NDb2x1bW4pLFxuICAgIG9yZGVyQnlEZXNjKGRlc2NDb2x1bW4pLFxuICApKHJlbCk7XG5cbiAgdC50cnVlKHF1ZXJ5LmFyZ3Mub3JkZXIgaW5zdGFuY2VvZiBBcnJheSk7XG4gIHQuZGVlcEVxdWFsKHF1ZXJ5LmFyZ3Mub3JkZXIsIFtcbiAgICB7Y29sdW1uOiBkZXNjQ29sdW1uLCBkaXJlY3Rpb246ICdkZXNjJ30sXG4gICAge2NvbHVtbjogYXNjQ29sdW1uLCBkaXJlY3Rpb246ICdhc2MnfSxcbiAgXSk7XG4gIHQuZW5kKCk7XG59KTtcblxudGVzdCgnI2V4Y2x1ZGUgLSBhZGRzIGFycmF5IHZhbHVlcycsIHQgPT4ge1xuICBjb25zdCBjb2x1bW5zID0gWydpZCcsICduYW1lJ107XG5cbiAgY29uc3QgcXVlcnkgPSBjb21wb3NlKFxuICAgIGV4Y2x1ZGUoY29sdW1uc1sxXSksXG4gICAgZXhjbHVkZShjb2x1bW5zWzBdKSxcbiAgKShyZWwpO1xuXG4gIHQudHJ1ZShxdWVyeS5hcmdzLmV4Y2x1ZGUgaW5zdGFuY2VvZiBBcnJheSk7XG4gIHQuZGVlcEVxdWFsKHF1ZXJ5LmFyZ3MuZXhjbHVkZSwgW2NvbHVtbnNdKTtcbiAgdC5lbmQoKTtcbn0pO1xuXG50ZXN0KCcjbGltaXQgLSBhZGRzIHZhbHVlIHRvIGFyZ3MnLCB0ID0+IHtcbiAgY29uc3QgdmFsdWUgPSAnNSc7XG5cbiAgY29uc3QgcXVlcnkgPSBsaW1pdCh2YWx1ZSkocmVsKTtcblxuICB0LmlzKHF1ZXJ5LmFyZ3MubGltaXQsIHZhbHVlKTtcbiAgdC5lbmQoKTtcbn0pO1xuXG50ZXN0KCcjbGltaXQgLSB0aHJvd3Mgb24gaW52YWxpZCBpbnB1dCcsIHQgPT4ge1xuICBjb25zdCB2YWx1ZSA9IG51bGw7XG5cbiAgdC50aHJvd3MoKCkgPT4gbGltaXQodmFsdWUpKHJlbCksIFR5cGVFcnJvcik7XG4gIHQuZW5kKCk7XG59KTtcbiJdfQ==