Check there is no unexepcted keys on redis after tests

This commit is contained in:
Raul Ochoa
2015-09-17 15:07:54 +02:00
parent 5428d3f0b0
commit 30cba053da
4 changed files with 78 additions and 16 deletions
+1 -1
View File
@@ -22,7 +22,7 @@ describe('tests from old api translated to multilayer', function() {
// 'map_style|null|publicuser|my_table',
redisClient.keys("map_style|*", function(err, matches) {
redisClient.del(matches, function() {
done();
testHelper.deleteRedisKeys({ 'user:cartodb250user:mapviews:global': 5 }, done);
});
});
});
+8 -1
View File
@@ -1,4 +1,4 @@
require('../support/test_helper');
var testHelper = require('../support/test_helper');
var assert = require('../support/assert');
var qs = require('querystring');
@@ -106,6 +106,13 @@ describe('get requests x-cache-channel', function() {
describe('header should be present', function() {
after(function(done) {
testHelper.deleteRedisKeys({
'map_cfg|a181ac96fac6d2b315dda88bc0bfa6cd': 0,
'user:localhost:mapviews:global': 5
}, done);
});
it('/api/v1/map Map instantiation', function(done) {
assert.response(
server,
+61 -13
View File
@@ -57,22 +57,70 @@ function checkSurrogateKey(res, expectedKey) {
}
//var _ = require('underscore');
//var redis = require('redis');
// global afterEach to capture tests that leave keys in redis
//afterEach(function(done) {
// var redisClient = redis.createClient(global.environment.redis.port);
// // Check that we start with an empty redis db
// redisClient.keys("*", function(err, keys) {
// if ( err ) {
// return done(err);
// }
// assert.equal(keys.length, 0, "test left objects in redis:\n" + keys.join("\n"));
// redisClient.flushall(done);
// });
//});
var redis = require('redis');
//global after to capture test suites that leave keys in redis
after(function(done) {
var expectedKeys = {
'rails:test_windshaft_cartodb_user_1_db:test_table_private_1': true,
'rails:test_windshaft_cartodb_user_1_db:my_table': true,
'rails:users:localhost:map_key': true,
'rails:users:cartodb250user': true,
'rails:users:localhost': true
};
var databasesTasks = { 0: 'users', 5: 'meta'};
var keysFound = [];
function taskDone(err, db, keys) {
if (err) {
return done(err);
}
delete databasesTasks[db];
keys.forEach(function(k) {
if (!expectedKeys[k]) {
keysFound.push(k);
}
});
if (Object.keys(databasesTasks).length === 0) {
assert.equal(keysFound.length, 0, 'Unexpected keys found in redis: ' + keysFound.join(', '));
done();
}
}
Object.keys(databasesTasks).forEach(function(db) {
var redisClient = redis.createClient(global.environment.redis.port);
redisClient.select(db, function() {
// Check that we start with an empty redis db
redisClient.keys("*", function(err, keys) {
return taskDone(err, db, keys);
});
});
});
});
function deleteRedisKeys(keysToDelete, callback) {
function taskDone(k) {
delete keysToDelete[k];
if (Object.keys(keysToDelete).length === 0) {
callback();
}
}
Object.keys(keysToDelete).forEach(function(k) {
var redisClient = redis.createClient(global.environment.redis.port);
redisClient.select(keysToDelete[k], function() {
redisClient.del(k, function() {
taskDone(k);
});
});
});
}
module.exports = {
deleteRedisKeys: deleteRedisKeys,
lzma_compress_to_base64: lzma_compress_to_base64,
checkNoCache: checkNoCache,
checkSurrogateKey: checkSurrogateKey,
+8 -1
View File
@@ -1,4 +1,4 @@
require('../../support/test_helper');
var testHelper = require('../../support/test_helper');
var assert = require('assert');
var RedisPool = require('redis-mpool');
@@ -11,6 +11,13 @@ describe('template_maps', function() {
// configure redis pool instance to use in tests
var redis_pool = new RedisPool(global.environment.redis);
after(function(done) {
testHelper.deleteRedisKeys({
'map_tpl|me': 0,
'map_tpl|you': 0
}, done);
});
var wadusLayer = {
options: {
sql: 'select 1 cartodb_id, null::geometry the_geom_webmercator',