mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-14 09:55:47 +01:00
redismock.js - wrapper for using test db instead of production
This commit is contained in:
57
mocks/redismock.js
Normal file
57
mocks/redismock.js
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
/**
|
||||||
|
* Redis Mock - wrapper for redis.js, makes system use separate test db, instead of production
|
||||||
|
* ATTENTION: testing db is flushed before every use!
|
||||||
|
*/
|
||||||
|
|
||||||
|
(function(module) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
var RedisDB,
|
||||||
|
redis = require('redis'),
|
||||||
|
utils = require('./../public/src/utils.js'),
|
||||||
|
path = require('path'),
|
||||||
|
nconf = require('nconf'),
|
||||||
|
winston = require('winston'),
|
||||||
|
errorText;
|
||||||
|
|
||||||
|
|
||||||
|
nconf.file({ file: path.join(__dirname, '../config.json') });
|
||||||
|
|
||||||
|
var testDbConfig = nconf.get('redis_test'),
|
||||||
|
productionDbConfig = nconf.get('redis');
|
||||||
|
if(!testDbConfig){
|
||||||
|
errorText = 'redis_test database is not defined';
|
||||||
|
winston.error(errorText);
|
||||||
|
throw new Error(errorText);
|
||||||
|
}
|
||||||
|
|
||||||
|
if( testDbConfig.database === productionDbConfig.database &&
|
||||||
|
testDbConfig.host === productionDbConfig.host &&
|
||||||
|
testDbConfig.port === productionDbConfig.port
|
||||||
|
){
|
||||||
|
errorText = 'redis_test database has the same config as production db';
|
||||||
|
winston.error(errorText);
|
||||||
|
throw new Error(errorText);
|
||||||
|
}
|
||||||
|
|
||||||
|
nconf.set('redis',testDbConfig);
|
||||||
|
|
||||||
|
RedisDB = require('../src/redis.js');
|
||||||
|
|
||||||
|
|
||||||
|
//Clean up
|
||||||
|
RedisDB.send_command('flushdb', [], function(error){
|
||||||
|
if(error){
|
||||||
|
winston.error(error);
|
||||||
|
throw new Error(error);
|
||||||
|
} else {
|
||||||
|
winston.info('redis_test db flushed');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
//TODO: data seeding, if needed at all
|
||||||
|
|
||||||
|
|
||||||
|
module.exports = RedisDB;
|
||||||
|
|
||||||
|
}(module));
|
||||||
Reference in New Issue
Block a user