aquameta-datum
Version:
Service layer for the Aquameta database API
38 lines • 4.47 kB
JavaScript
import test from 'tape';
import { fn } from '../../database/chainable.js';
test('#fn - throws when no arguments provided', t => {
t.throws(fn, Error);
t.end();
});
test('#fn - parses schema and relation names from argument', t => {
const func = fn('widget.transpile', {});
t.is(func.schemaName, 'widget');
t.is(func.fnName, 'transpile');
t.end();
});
test('#fn - adds `public` schema when no schema provided', t => {
const func = fn('uuid_generate_v4', {});
t.is(func.schemaName, 'public');
t.is(func.fnName, 'uuid_generate_v4');
t.end();
});
test('#fn - handles val arrays', t => {
const args = [1, 2, 3];
const func = fn('endpoint.create_session', args);
t.deepEqual(func.args.args, [{
vals: args
}]);
t.end();
});
test('#fn - handles kwargs object', t => {
const args = {
name: 'my_name',
new_session: true
};
const func = fn('endpoint.create_session', args);
t.deepEqual(func.args.args, [{
kwargs: args
}]);
t.end();
});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNoYWluYWJsZS1mbi5qcyJdLCJuYW1lcyI6WyJ0ZXN0IiwiZm4iLCJ0IiwidGhyb3dzIiwiRXJyb3IiLCJlbmQiLCJmdW5jIiwiaXMiLCJzY2hlbWFOYW1lIiwiZm5OYW1lIiwiYXJncyIsImRlZXBFcXVhbCIsInZhbHMiLCJuYW1lIiwibmV3X3Nlc3Npb24iLCJrd2FyZ3MiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLElBQVAsTUFBaUIsTUFBakI7QUFDQSxTQUFRQyxFQUFSLFFBQWlCLDZCQUFqQjtBQUVBRCxJQUFJLENBQUMseUNBQUQsRUFBNENFLENBQUMsSUFBSTtBQUNuREEsRUFBQUEsQ0FBQyxDQUFDQyxNQUFGLENBQVNGLEVBQVQsRUFBYUcsS0FBYjtBQUNBRixFQUFBQSxDQUFDLENBQUNHLEdBQUY7QUFDRCxDQUhHLENBQUo7QUFLQUwsSUFBSSxDQUFDLHNEQUFELEVBQXlERSxDQUFDLElBQUk7QUFDaEUsUUFBTUksSUFBSSxHQUFHTCxFQUFFLENBQUMsa0JBQUQsRUFBcUIsRUFBckIsQ0FBZjtBQUNBQyxFQUFBQSxDQUFDLENBQUNLLEVBQUYsQ0FBS0QsSUFBSSxDQUFDRSxVQUFWLEVBQXNCLFFBQXRCO0FBQ0FOLEVBQUFBLENBQUMsQ0FBQ0ssRUFBRixDQUFLRCxJQUFJLENBQUNHLE1BQVYsRUFBa0IsV0FBbEI7QUFDQVAsRUFBQUEsQ0FBQyxDQUFDRyxHQUFGO0FBQ0QsQ0FMRyxDQUFKO0FBT0FMLElBQUksQ0FBQyxvREFBRCxFQUF1REUsQ0FBQyxJQUFJO0FBQzlELFFBQU1JLElBQUksR0FBR0wsRUFBRSxDQUFDLGtCQUFELEVBQXFCLEVBQXJCLENBQWY7QUFDQUMsRUFBQUEsQ0FBQyxDQUFDSyxFQUFGLENBQUtELElBQUksQ0FBQ0UsVUFBVixFQUFzQixRQUF0QjtBQUNBTixFQUFBQSxDQUFDLENBQUNLLEVBQUYsQ0FBS0QsSUFBSSxDQUFDRyxNQUFWLEVBQWtCLGtCQUFsQjtBQUNBUCxFQUFBQSxDQUFDLENBQUNHLEdBQUY7QUFDRCxDQUxHLENBQUo7QUFPQUwsSUFBSSxDQUFDLDBCQUFELEVBQTZCRSxDQUFDLElBQUk7QUFDcEMsUUFBTVEsSUFBSSxHQUFHLENBQUMsQ0FBRCxFQUFJLENBQUosRUFBTyxDQUFQLENBQWI7QUFDQSxRQUFNSixJQUFJLEdBQUdMLEVBQUUsQ0FBQyx5QkFBRCxFQUE0QlMsSUFBNUIsQ0FBZjtBQUNBUixFQUFBQSxDQUFDLENBQUNTLFNBQUYsQ0FBWUwsSUFBSSxDQUFDSSxJQUFMLENBQVVBLElBQXRCLEVBQTRCLENBQUM7QUFBQ0UsSUFBQUEsSUFBSSxFQUFFRjtBQUFQLEdBQUQsQ0FBNUI7QUFDQVIsRUFBQUEsQ0FBQyxDQUFDRyxHQUFGO0FBQ0QsQ0FMRyxDQUFKO0FBT0FMLElBQUksQ0FBQyw2QkFBRCxFQUFnQ0UsQ0FBQyxJQUFJO0FBQ3ZDLFFBQU1RLElBQUksR0FBRztBQUFDRyxJQUFBQSxJQUFJLEVBQUUsU0FBUDtBQUFrQkMsSUFBQUEsV0FBVyxFQUFFO0FBQS9CLEdBQWI7QUFDQSxRQUFNUixJQUFJLEdBQUdMLEVBQUUsQ0FBQyx5QkFBRCxFQUE0QlMsSUFBNUIsQ0FBZjtBQUNBUixFQUFBQSxDQUFDLENBQUNTLFNBQUYsQ0FBWUwsSUFBSSxDQUFDSSxJQUFMLENBQVVBLElBQXRCLEVBQTRCLENBQUM7QUFBQ0ssSUFBQUEsTUFBTSxFQUFFTDtBQUFULEdBQUQsQ0FBNUI7QUFDQVIsRUFBQUEsQ0FBQyxDQUFDRyxHQUFGO0FBQ0QsQ0FMRyxDQUFKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHRlc3QgZnJvbSAndGFwZSc7XG5pbXBvcnQge2ZufSBmcm9tICcuLi8uLi9kYXRhYmFzZS9jaGFpbmFibGUuanMnO1xuXG50ZXN0KCcjZm4gLSB0aHJvd3Mgd2hlbiBubyBhcmd1bWVudHMgcHJvdmlkZWQnLCB0ID0+IHtcbiAgdC50aHJvd3MoZm4sIEVycm9yKTtcbiAgdC5lbmQoKTtcbn0pO1xuXG50ZXN0KCcjZm4gLSBwYXJzZXMgc2NoZW1hIGFuZCByZWxhdGlvbiBuYW1lcyBmcm9tIGFyZ3VtZW50JywgdCA9PiB7XG4gIGNvbnN0IGZ1bmMgPSBmbignd2lkZ2V0LnRyYW5zcGlsZScsIHt9KTtcbiAgdC5pcyhmdW5jLnNjaGVtYU5hbWUsICd3aWRnZXQnKTtcbiAgdC5pcyhmdW5jLmZuTmFtZSwgJ3RyYW5zcGlsZScpO1xuICB0LmVuZCgpO1xufSk7XG5cbnRlc3QoJyNmbiAtIGFkZHMgYHB1YmxpY2Agc2NoZW1hIHdoZW4gbm8gc2NoZW1hIHByb3ZpZGVkJywgdCA9PiB7XG4gIGNvbnN0IGZ1bmMgPSBmbigndXVpZF9nZW5lcmF0ZV92NCcsIHt9KTtcbiAgdC5pcyhmdW5jLnNjaGVtYU5hbWUsICdwdWJsaWMnKTtcbiAgdC5pcyhmdW5jLmZuTmFtZSwgJ3V1aWRfZ2VuZXJhdGVfdjQnKTtcbiAgdC5lbmQoKTtcbn0pO1xuXG50ZXN0KCcjZm4gLSBoYW5kbGVzIHZhbCBhcnJheXMnLCB0ID0+IHtcbiAgY29uc3QgYXJncyA9IFsxLCAyLCAzXTtcbiAgY29uc3QgZnVuYyA9IGZuKCdlbmRwb2ludC5jcmVhdGVfc2Vzc2lvbicsIGFyZ3MpO1xuICB0LmRlZXBFcXVhbChmdW5jLmFyZ3MuYXJncywgW3t2YWxzOiBhcmdzfV0pO1xuICB0LmVuZCgpO1xufSk7XG5cbnRlc3QoJyNmbiAtIGhhbmRsZXMga3dhcmdzIG9iamVjdCcsIHQgPT4ge1xuICBjb25zdCBhcmdzID0ge25hbWU6ICdteV9uYW1lJywgbmV3X3Nlc3Npb246IHRydWV9O1xuICBjb25zdCBmdW5jID0gZm4oJ2VuZHBvaW50LmNyZWF0ZV9zZXNzaW9uJywgYXJncyk7XG4gIHQuZGVlcEVxdWFsKGZ1bmMuYXJncy5hcmdzLCBbe2t3YXJnczogYXJnc31dKTtcbiAgdC5lbmQoKTtcbn0pO1xuIl19