aquameta-datum
Version:
Service layer for the Aquameta database API
108 lines (94 loc) • 10.3 kB
JavaScript
;
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