CartoDB-SQL-API/test/acceptance/regressions-test.js

64 lines
2.3 KiB
JavaScript
Raw Normal View History

2018-10-24 21:42:33 +08:00
'use strict';
2015-09-02 23:09:22 +08:00
require('../helper');
var server = require('../../lib/server')();
2015-09-02 23:09:22 +08:00
var assert = require('../support/assert');
var qs = require('querystring');
2019-12-24 01:19:08 +08:00
describe('regressions', function () {
it('issue #224: tables with . (dot) in name works and can be queried', function (done) {
function createRequest (sqlQuery) {
2015-09-02 23:09:22 +08:00
return {
url: '/api/v1/sql?' + qs.stringify({
q: sqlQuery,
api_key: 1234
}),
headers: {
host: 'vizzuality.cartodb.com'
},
method: 'GET'
};
}
var responseOk = {
statusCode: 200
};
assert.response(server, createRequest('CREATE TABLE "foo.bar" (a int);'), responseOk,
2019-12-24 01:19:08 +08:00
function (err) {
2015-09-02 23:09:22 +08:00
if (err) {
return done(err);
}
assert.response(server, createRequest('INSERT INTO "foo.bar" (a) values (1), (2)'), responseOk,
2019-12-24 01:19:08 +08:00
function (err, res) {
2015-09-02 23:09:22 +08:00
if (err) {
return done(err);
}
var parsedBody = JSON.parse(res.body);
2019-12-26 21:01:18 +08:00
assert.strictEqual(parsedBody.total_rows, 2);
2015-09-02 23:09:22 +08:00
assert.response(server, createRequest('SELECT * FROM "foo.bar"'), responseOk,
2019-12-24 01:19:08 +08:00
function (err, res) {
2015-09-02 23:09:22 +08:00
if (err) {
return done(err);
}
// table should not get a cache channel as it won't get invalidated
2019-12-26 23:10:41 +08:00
assert.ok(!Object.prototype.hasOwnProperty.call(res.headers, 'x-cache-channel'));
2015-09-02 23:09:22 +08:00
var parsedBody = JSON.parse(res.body);
2019-12-26 21:01:18 +08:00
assert.strictEqual(parsedBody.total_rows, 2);
assert.deepStrictEqual(parsedBody.rows, [{ a: 1 }, { a: 2 }]);
2016-09-27 00:26:00 +08:00
// delete table
assert.response(server, createRequest('DROP TABLE "foo.bar"'), responseOk, done);
2015-09-02 23:09:22 +08:00
}
);
}
);
}
);
});
});