Files
Windshaft-cartodb/test/acceptance/user-timeout-limit.js
Daniel García Aubert 669707b26c Fix typo
2017-07-18 11:56:54 +02:00

80 lines
2.3 KiB
JavaScript

require('../support/test_helper');
var assert = require('../support/assert');
var TestClient = require('../support/test-client');
var testHelper = require('../support/test_helper');
var redis = require('redis');
var keysToDelete;
function withUserTimeoutRenderLimit(redisClient, user, userTimeoutLimit, callback) {
redisClient.SELECT(5, function(err) {
if (err) {
return callback(err);
}
var userTimeoutLimitsKey = 'limits:timeout:' + user;
var redisParams = [
userTimeoutLimitsKey,
'render', userTimeoutLimit,
'render_public', userTimeoutLimit
];
redisClient.hmset(redisParams, function (err) {
if (err) {
return callback(err);
}
keysToDelete[userTimeoutLimitsKey] = 5;
return callback();
});
});
}
function createMapConfig (cartocss) {
return {
version: '1.6.0',
layers: [{
type: "cartodb",
options: {
sql: [
'SELECT',
' pg_sleep(1),',
' 1 cartodb_id,',
' \'SRID=3857;POINT(0 0)\'::geometry the_geom_webmercator'
].join('\n'),
cartocss: cartocss,
cartocss_version: '2.3.0',
interactivity: 'cartodb_id'
}
}]
};
}
describe('user timeout limits', function () {
var redisClient = redis.createClient(global.environment.redis.port);
beforeEach(function() {
keysToDelete = {};
});
afterEach(function (done) {
testHelper.deleteRedisKeys(keysToDelete, done);
});
it('layergroup creation works even if test tile is slow', function (done) {
withUserTimeoutRenderLimit(redisClient, 'localhost', 1, function (err) {
if (err) {
return done(err);
}
var mapConfig = createMapConfig(TestClient.CARTOCSS.POINTS);
var testClient = new TestClient(mapConfig, 1234);
testClient.getTile(4, 4, 4, {}, function (err /*, res, tile */) {
assert.ok(err, err);
// TODO: check timeout tile
testClient.drain(done);
});
});
});
});