removed redismock, added database mocked, fixed tests to work with dbal
parent
6313a5eeb1
commit
0da141e7bc
@ -0,0 +1,81 @@
|
|||||||
|
/**
|
||||||
|
* Database Mock - wrapper for database.js, makes system use separate test db, instead of production
|
||||||
|
* ATTENTION: testing db is flushed before every use!
|
||||||
|
*/
|
||||||
|
|
||||||
|
(function(module) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
var 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 dbType = nconf.get('database'),
|
||||||
|
testDbConfig = nconf.get('test_database'),
|
||||||
|
productionDbConfig = nconf.get(dbType);
|
||||||
|
|
||||||
|
if(!testDbConfig){
|
||||||
|
errorText = 'test_database is not defined';
|
||||||
|
winston.info(
|
||||||
|
"\n===========================================================\n"+
|
||||||
|
"Please, add parameters for test database in config.json\n"+
|
||||||
|
"For example (redis):\n"+
|
||||||
|
'"test_database": {' + '\n' +
|
||||||
|
' "host": "127.0.0.1",' + '\n' +
|
||||||
|
' "port": "6379",' + '\n' +
|
||||||
|
' "password": "",' + '\n' +
|
||||||
|
' "database": "1"' + '\n' +
|
||||||
|
'}\n'+
|
||||||
|
" or (mongo):\n" +
|
||||||
|
'"test_database": {' + '\n' +
|
||||||
|
' "host": "127.0.0.1",' + '\n' +
|
||||||
|
' "port": "27017",' + '\n' +
|
||||||
|
' "password": "",' + '\n' +
|
||||||
|
' "database": "1"' + '\n' +
|
||||||
|
'}\n'+
|
||||||
|
"==========================================================="
|
||||||
|
);
|
||||||
|
winston.error(errorText);
|
||||||
|
throw new Error(errorText);
|
||||||
|
}
|
||||||
|
|
||||||
|
if( testDbConfig.database === productionDbConfig.database &&
|
||||||
|
testDbConfig.host === productionDbConfig.host &&
|
||||||
|
testDbConfig.port === productionDbConfig.port
|
||||||
|
){
|
||||||
|
errorText = 'test_database has the same config as production db';
|
||||||
|
winston.error(errorText);
|
||||||
|
throw new Error(errorText);
|
||||||
|
}
|
||||||
|
|
||||||
|
nconf.set(dbType, testDbConfig);
|
||||||
|
|
||||||
|
db = require('../src/database');
|
||||||
|
before(function(done) {
|
||||||
|
|
||||||
|
db.init(function(err) {
|
||||||
|
//Clean up
|
||||||
|
db.flushdb(function(err) {
|
||||||
|
if(err){
|
||||||
|
winston.error(err);
|
||||||
|
throw new Error(err);
|
||||||
|
} else {
|
||||||
|
winston.info('test_database flushed');
|
||||||
|
done();
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO: data seeding, if needed at all
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
module.exports = db;
|
||||||
|
|
||||||
|
}(module));
|
@ -1,69 +0,0 @@
|
|||||||
/**
|
|
||||||
* 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.info(
|
|
||||||
"\n===========================================================\n"+
|
|
||||||
"Please, add parameters for test database in config.json\n"+
|
|
||||||
"For example:\n"+
|
|
||||||
'"redis_test": {' + '\n' +
|
|
||||||
' "host": "127.0.0.1",' + '\n' +
|
|
||||||
' "port": "6379",' + '\n' +
|
|
||||||
' "password": "",' + '\n' +
|
|
||||||
' "database": "1"' + '\n' +
|
|
||||||
'}\n'+
|
|
||||||
"==========================================================="
|
|
||||||
);
|
|
||||||
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));
|
|
Loading…
Reference in New Issue