Do not leak redis connections

Reuse redis client in afterEach and quit client in function
This commit is contained in:
Raul Ochoa
2016-02-22 17:51:53 +01:00
parent b93d33e065
commit dd8340b400

View File

@@ -66,6 +66,14 @@ function checkSurrogateKey(res, expectedKey) {
assert.equal(res.headers['surrogate-key'], expectedKey);
}
var redisClient;
beforeEach(function() {
if (!redisClient) {
redisClient = redis.createClient(global.environment.redis.port);
}
});
//global afterEach to capture test suites that leave keys in redis
afterEach(function(done) {
@@ -102,7 +110,6 @@ afterEach(function(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) {
@@ -129,6 +136,7 @@ function deleteRedisKeys(keysToDelete, callback) {
var redisClient = redis.createClient(global.environment.redis.port);
redisClient.select(keysToDelete[k], function() {
redisClient.del(k, function(err, deletedKeysCount) {
redisClient.quit();
assert.notStrictEqual(deletedKeysCount, 0, 'No KEYS deleted for: [db=' + keysToDelete[k] + ']' + k);
taskDone(k);
});