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

53 lines
1.7 KiB
JavaScript
Raw Normal View History

2018-10-24 21:42:33 +08:00
'use strict';
/**
*
* Requires the database and tables setup in config/environments/test.js to exist
* Ensure the user is present in the pgbouncer auth file too
* TODO: Add OAuth tests.
*
* To run this test, ensure that cartodb_test_user_1_db metadata exists
* in Redis for the vizzuality.cartodb.com domain
*
* SELECT 5
* HSET rails:users:vizzuality id 1
* HSET rails:users:vizzuality database_name cartodb_test_user_1_db
*
*/
require('../helper');
2015-05-13 17:21:44 +08:00
var assert = require('../support/assert');
var step = require('step');
2019-12-24 01:19:08 +08:00
describe('timeout', function () {
// See https://github.com/CartoDB/CartoDB-SQL-API/issues/128
2019-12-24 01:19:08 +08:00
it('after configured milliseconds', function (done) {
var testTimeout = 10;
// console.log("settings:"); console.dir(global.settings);
var timeoutBackup = global.settings.node_socket_timeout;
global.settings.node_socket_timeout = testTimeout;
var server = require('../../lib/server')();
step(
function sendLongQuery () {
assert.response(server, {
url: '/api/v1/sql?q=SELECT+count(*)+FROM+generate_series(1,100000)',
method: 'GET',
headers: { host: 'vizzuality.localhost' }
}, {}, this);
},
function checkResponse (err/*, res */) {
assert.ok(err);
assert.ok(err.message.match(/hang up/), err);
return null;
},
function finish (err) {
global.settings.node_socket_timeout = timeoutBackup;
done(err);
}
);
});
2019-12-24 01:19:08 +08:00
// TODO: check that the query is interrupted on timeout!
// See #129
});