UNPKG

aquameta-datum

Version:

Service layer for the Aquameta database API

108 lines (94 loc) 10.3 kB
"use strict"; var _tape = _interopRequireDefault(require("tape")); var _endpoint = _interopRequireDefault(require("../../query/endpoint.js")); var fetchExport = _interopRequireWildcard(require("../../query/fetch.js")); var _sinon = _interopRequireDefault(require("sinon")); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } (0, _tape.default)('#endpoint', async t => { const fakeFetch = (url, options) => { t.is(url, '/db/v3/relation/endpoint/session'); t.is(options.method, 'POST'); t.is(options.body, void 0, 'body is not added with no data'); t.true('credentials' in options, 'some form of credentials are used'); return { json: _sinon.default.fake.returns(Promise.resolve({ result: [{ row: {} }] })) }; }; _sinon.default.stub(fetchExport, 'fetch').callsFake(fakeFetch); const client = { url: '/db/', version: 'v3' }; const query = { url: '/relation//endpoint/session/', method: 'POST', args: {}, data: null }; await (0, _endpoint.default)(client, query); fetchExport.fetch.restore(); t.end(); }); (0, _tape.default)('#endpoint - with data', async t => { const fakeFetch = (url, options) => { t.is(typeof options.body, 'string', 'body is a string'); t.is(options.body, '{"key":"value"}', 'body is stringified'); return { json: _sinon.default.fake.returns(Promise.resolve({ result: [{ row: {} }] })) }; }; _sinon.default.stub(fetchExport, 'fetch').callsFake(fakeFetch); const query = { url: '/relation//endpoint/session/', method: 'POST', args: {}, data: { key: 'value' } }; await (0, _endpoint.default)({}, query); fetchExport.fetch.restore(); t.end(); }); (0, _tape.default)('#endpoint - with args', async t => { const argsString = 'limit=5&order_by=name'; const args = { order: [{ column: 'name', direction: 'asc' }], limit: 5 }; const client = { url: '/db', version: 'v3' }; const query = { url: 'relation/endpoint/session', args }; const fakeFetch = url => { t.is(url, `${client.url}/${client.version}/${query.url}?${argsString}`, 'adds query string'); return { json: _sinon.default.fake.returns(Promise.resolve({ result: [{ row: {} }] })) }; }; _sinon.default.stub(fetchExport, 'fetch').callsFake(fakeFetch); await (0, _endpoint.default)(client, query); fetchExport.fetch.restore(); t.end(); }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVuZHBvaW50LmpzIl0sIm5hbWVzIjpbInQiLCJmYWtlRmV0Y2giLCJ1cmwiLCJvcHRpb25zIiwiaXMiLCJtZXRob2QiLCJib2R5IiwidHJ1ZSIsImpzb24iLCJzaW5vbiIsImZha2UiLCJyZXR1cm5zIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZXN1bHQiLCJyb3ciLCJzdHViIiwiZmV0Y2hFeHBvcnQiLCJjYWxsc0Zha2UiLCJjbGllbnQiLCJ2ZXJzaW9uIiwicXVlcnkiLCJhcmdzIiwiZGF0YSIsImZldGNoIiwicmVzdG9yZSIsImVuZCIsImtleSIsImFyZ3NTdHJpbmciLCJvcmRlciIsImNvbHVtbiIsImRpcmVjdGlvbiIsImxpbWl0Il0sIm1hcHBpbmdzIjoiOztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUFFQSxtQkFBSyxXQUFMLEVBQWtCLE1BQU1BLENBQU4sSUFBVztBQUMzQixRQUFNQyxTQUFTLEdBQUcsQ0FBQ0MsR0FBRCxFQUFNQyxPQUFOLEtBQWtCO0FBQ2xDSCxJQUFBQSxDQUFDLENBQUNJLEVBQUYsQ0FBS0YsR0FBTCxFQUFVLGtDQUFWO0FBQ0FGLElBQUFBLENBQUMsQ0FBQ0ksRUFBRixDQUFLRCxPQUFPLENBQUNFLE1BQWIsRUFBcUIsTUFBckI7QUFDQUwsSUFBQUEsQ0FBQyxDQUFDSSxFQUFGLENBQUtELE9BQU8sQ0FBQ0csSUFBYixFQUFtQixLQUFLLENBQXhCLEVBQTJCLGdDQUEzQjtBQUNBTixJQUFBQSxDQUFDLENBQUNPLElBQUYsQ0FBTyxpQkFBaUJKLE9BQXhCLEVBQWlDLG1DQUFqQztBQUNBLFdBQU87QUFDTEssTUFBQUEsSUFBSSxFQUFFQyxlQUFNQyxJQUFOLENBQVdDLE9BQVgsQ0FDSkMsT0FBTyxDQUFDQyxPQUFSLENBQWdCO0FBQ2RDLFFBQUFBLE1BQU0sRUFBRSxDQUFDO0FBQUNDLFVBQUFBLEdBQUcsRUFBRTtBQUFOLFNBQUQ7QUFETSxPQUFoQixDQURJO0FBREQsS0FBUDtBQU9ELEdBWkQ7O0FBYUFOLGlC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QUFDQyxPQUFSLENBQWdCO0FBQ2RDLFFBQUFBLE1BQU0sRUFBRSxDQUFDO0FBQUNDLFVBQUFBLEdBQUcsRUFBRTtBQUFOLFNBQUQ7QUFETSxPQUFoQixDQURJO0FBREQsS0FBUDtBQU9ELEdBYkQ7O0FBY0FOLGlCQUFNTyxJQUFOLENBQVdDLFdBQVgsRUFBd0IsT0FBeEIsRUFBaUNDLFNBQWpDLENBQTJDakIsU0FBM0M7O0FBRUEsUUFBTSx1QkFBU2tCLE1BQVQsRUFBaUJFLEtBQWpCLENBQU47QUFDQUosRUFBQUEsV0FBVyxDQUFDTyxLQUFaLENBQWtCQyxPQUFsQjtBQUNBekIsRUFBQUEsQ0FBQyxDQUFDMEIsR0FBRjtBQUNELENBdkNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHRlc3QgZnJvbSAndGFwZSc7XG5pbXBvcnQgZW5kcG9pbnQgZnJvbSAnLi4vLi4vcXVlcnkvZW5kcG9pbnQuanMnO1xuaW1wb3J0ICogYXMgZmV0Y2hFeHBvcnQgZnJvbSAnLi4vLi4vcXVlcnkvZmV0Y2guanMnO1xuaW1wb3J0IHNpbm9uIGZyb20gJ3Npbm9uJztcblxudGVzdCgnI2VuZHBvaW50JywgYXN5bmMgdCA9PiB7XG4gIGNvbnN0IGZha2VGZXRjaCA9ICh1cmwsIG9wdGlvbnMpID0+IHtcbiAgICB0LmlzKHVybCwgJy9kYi92My9yZWxhdGlvbi9lbmRwb2ludC9zZXNzaW9uJyk7XG4gICAgdC5pcyhvcHRpb25zLm1ldGhvZCwgJ1BPU1QnKTtcbiAgICB0LmlzKG9wdGlvbnMuYm9keSwgdm9pZCAwLCAnYm9keSBpcyBub3QgYWRkZWQgd2l0aCBubyBkYXRhJyk7XG4gICAgdC50cnVlKCdjcmVkZW50aWFscycgaW4gb3B0aW9ucywgJ3NvbWUgZm9ybSBvZiBjcmVkZW50aWFscyBhcmUgdXNlZCcpO1xuICAgIHJldHVybiB7XG4gICAgICBqc29uOiBzaW5vbi5mYWtlLnJldHVybnMoXG4gICAgICAgIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICAgICAgcmVzdWx0OiBbe3Jvdzoge319XSxcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgIH07XG4gIH07XG4gIHNpbm9uLnN0dWIoZmV0Y2hFeHBvcnQsICdmZXRjaCcpLmNhbGxzRmFrZShmYWtlRmV0Y2gpO1xuXG4gIGNvbnN0IGNsaWVudCA9IHtcbiAgICB1cmw6ICcvZGIvJyxcbiAgICB2ZXJzaW9uOiAndjMnLFxuICB9O1xuICBjb25zdCBxdWVyeSA9IHtcbiAgICB1cmw6ICcvcmVsYXRpb24vL2VuZHBvaW50L3Nlc3Npb24vJyxcbiAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICBhcmdzOiB7fSxcbiAgICBkYXRhOiBudWxsLFxuICB9O1xuICBhd2FpdCBlbmRwb2ludChjbGllbnQsIHF1ZXJ5KTtcbiAgZmV0Y2hFeHBvcnQuZmV0Y2gucmVzdG9yZSgpO1xuICB0LmVuZCgpO1xufSk7XG5cbnRlc3QoJyNlbmRwb2ludCAtIHdpdGggZGF0YScsIGFzeW5jIHQgPT4ge1xuICBjb25zdCBmYWtlRmV0Y2ggPSAodXJsLCBvcHRpb25zKSA9PiB7XG4gICAgdC5pcyh0eXBlb2Ygb3B0aW9ucy5ib2R5LCAnc3RyaW5nJywgJ2JvZHkgaXMgYSBzdHJpbmcnKTtcbiAgICB0LmlzKG9wdGlvbnMuYm9keSwgJ3tcImtleVwiOlwidmFsdWVcIn0nLCAnYm9keSBpcyBzdHJpbmdpZmllZCcpO1xuICAgIHJldHVybiB7XG4gICAgICBqc29uOiBzaW5vbi5mYWtlLnJldHVybnMoXG4gICAgICAgIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICAgICAgcmVzdWx0OiBbe3Jvdzoge319XSxcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgIH07XG4gIH07XG4gIHNpbm9uLnN0dWIoZmV0Y2hFeHBvcnQsICdmZXRjaCcpLmNhbGxzRmFrZShmYWtlRmV0Y2gpO1xuXG4gIGNvbnN0IHF1ZXJ5ID0ge1xuICAgIHVybDogJy9yZWxhdGlvbi8vZW5kcG9pbnQvc2Vzc2lvbi8nLFxuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGFyZ3M6IHt9LFxuICAgIGRhdGE6IHtrZXk6ICd2YWx1ZSd9LFxuICB9O1xuICBhd2FpdCBlbmRwb2ludCh7fSwgcXVlcnkpO1xuICBmZXRjaEV4cG9ydC5mZXRjaC5yZXN0b3JlKCk7XG4gIHQuZW5kKCk7XG59KTtcblxudGVzdCgnI2VuZHBvaW50IC0gd2l0aCBhcmdzJywgYXN5bmMgdCA9PiB7XG4gIGNvbnN0IGFyZ3NTdHJpbmcgPSAnbGltaXQ9NSZvcmRlcl9ieT1uYW1lJztcbiAgY29uc3QgYXJncyA9IHtcbiAgICBvcmRlcjogW1xuICAgICAge1xuICAgICAgICBjb2x1bW46ICduYW1lJyxcbiAgICAgICAgZGlyZWN0aW9uOiAnYXNjJyxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBsaW1pdDogNSxcbiAgfTtcbiAgY29uc3QgY2xpZW50ID0ge1xuICAgIHVybDogJy9kYicsXG4gICAgdmVyc2lvbjogJ3YzJyxcbiAgfTtcbiAgY29uc3QgcXVlcnkgPSB7XG4gICAgdXJsOiAncmVsYXRpb24vZW5kcG9pbnQvc2Vzc2lvbicsXG4gICAgYXJncyxcbiAgfTtcblxuICBjb25zdCBmYWtlRmV0Y2ggPSB1cmwgPT4ge1xuICAgIHQuaXMoXG4gICAgICB1cmwsXG4gICAgICBgJHtjbGllbnQudXJsfS8ke2NsaWVudC52ZXJzaW9ufS8ke3F1ZXJ5LnVybH0/JHthcmdzU3RyaW5nfWAsXG4gICAgICAnYWRkcyBxdWVyeSBzdHJpbmcnLFxuICAgICk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGpzb246IHNpbm9uLmZha2UucmV0dXJucyhcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICByZXN1bHQ6IFt7cm93OiB7fX1dLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgfTtcbiAgfTtcbiAgc2lub24uc3R1YihmZXRjaEV4cG9ydCwgJ2ZldGNoJykuY2FsbHNGYWtlKGZha2VGZXRjaCk7XG5cbiAgYXdhaXQgZW5kcG9pbnQoY2xpZW50LCBxdWVyeSk7XG4gIGZldGNoRXhwb3J0LmZldGNoLnJlc3RvcmUoKTtcbiAgdC5lbmQoKTtcbn0pO1xuIl19