Tests for surrogate keys in layergroup anonymous instantiation

This commit is contained in:
Raul Ochoa 2015-07-13 16:54:08 +02:00
parent d6447ef311
commit 9355a5ca24
2 changed files with 26 additions and 16 deletions

View File

@ -17,6 +17,8 @@ var serverOptions = require('../../lib/cartodb/server_options');
var server = new CartodbWindshaft(serverOptions); var server = new CartodbWindshaft(serverOptions);
server.setMaxListeners(0); server.setMaxListeners(0);
var TablesCacheEntry = require('../../lib/cartodb/cache/model/database_tables_entry');
['/api/v1/map', '/user/localhost/api/v1/map'].forEach(function(layergroup_url) { ['/api/v1/map', '/user/localhost/api/v1/map'].forEach(function(layergroup_url) {
var suiteName = 'multilayer:postgres=layergroup_url=' + layergroup_url; var suiteName = 'multilayer:postgres=layergroup_url=' + layergroup_url;
@ -67,11 +69,8 @@ suite(suiteName, function() {
assert.equal(res.statusCode, 200, res.body); assert.equal(res.statusCode, 200, res.body);
var parsedBody = JSON.parse(res.body); var parsedBody = JSON.parse(res.body);
assert.equal(parsedBody.last_updated, expected_last_updated); assert.equal(parsedBody.last_updated, expected_last_updated);
if ( expected_token ) {
assert.equal(parsedBody.layergroupid, expected_token + ':' + expected_last_updated_epoch);
assert.equal(res.headers['x-layergroup-id'], parsedBody.layergroupid); assert.equal(res.headers['x-layergroup-id'], parsedBody.layergroupid);
} expected_token = parsedBody.layergroupid.split(':')[0];
else expected_token = parsedBody.layergroupid.split(':')[0];
next(null, res); next(null, res);
}); });
}, },
@ -230,10 +229,16 @@ suite(suiteName, function() {
version: '1.0.0', version: '1.0.0',
layers: [ layers: [
{ options: { { options: {
sql: 'select cartodb_id, ST_Translate(the_geom_webmercator, 5e6, 0) as the_geom_webmercator' + sql: 'select cartodb_id, the_geom_webmercator from test_table',
' from test_table limit 2',
cartocss: '#layer { marker-fill:red; marker-width:32; marker-allow-overlap:true; }', cartocss: '#layer { marker-fill:red; marker-width:32; marker-allow-overlap:true; }',
cartocss_version: '2.0.1' cartocss_version: '2.0.1',
interactivity: 'cartodb_id'
} },
{ options: {
sql: 'select cartodb_id, the_geom_webmercator from test_table_2',
cartocss: '#layer { marker-fill:blue; marker-allow-overlap:true; }',
cartocss_version: '2.0.2',
interactivity: 'cartodb_id'
} } } }
] ]
}; };
@ -255,6 +260,10 @@ suite(suiteName, function() {
var parsedBody = JSON.parse(res.body); var parsedBody = JSON.parse(res.body);
expected_token = parsedBody.layergroupid.split(':')[0]; expected_token = parsedBody.layergroupid.split(':')[0];
helper.checkCache(res); helper.checkCache(res);
helper.checkSurrogateKey(res, new TablesCacheEntry('test_windshaft_cartodb_user_1_db', [
'public.test_table',
'public.test_table_2'
]).key().join(' '));
return null; return null;
}, },
function finish(err) { function finish(err) {

View File

@ -34,6 +34,7 @@ function lzma_compress_to_base64(payload, mode, callback) {
// Throws on failure // Throws on failure
function checkNoCache(res) { function checkNoCache(res) {
assert.ok(!res.headers.hasOwnProperty('x-cache-channel')); assert.ok(!res.headers.hasOwnProperty('x-cache-channel'));
assert.ok(!res.headers.hasOwnProperty('surrogate-key'));
assert.ok(!res.headers.hasOwnProperty('cache-control')); // is this correct ? assert.ok(!res.headers.hasOwnProperty('cache-control')); // is this correct ?
assert.ok(!res.headers.hasOwnProperty('last-modified')); // is this correct ? assert.ok(!res.headers.hasOwnProperty('last-modified')); // is this correct ?
} }