sundry
Version:
A dynamically configurable, load balancing, reverse proxy.
102 lines (92 loc) • 3.45 kB
JavaScript
var expect = require('chai').expect;
var path = require('path');
var fs = require('fs')
var rimraf = require('rimraf')
describe("Config Loader - File absent", function() {
var config;
before(function(done){
process.env.HOME = path.join(__dirname, './mocks/testHome')
process.env.sundry_redis_url = 'redis://new.url:6379/0';
config = require('../lib/Configuration/configLoader');
config.on('ready', function() {
done()
});
});
after(function(done){
var resolved = require.resolve('../lib/Configuration/configLoader');
delete require.cache[resolved];
done()
});
describe('Uses defaults with no config file present',function(){
it('Expect config file to not be present', function(done) {
fs.stat(path.join(process.env.HOME, './sundry'), function(err, stats) {
expect(err.code).to.equal('ENOENT')
done()
})
});
it('Default config value present', function() {
expect(config.loadedConfig.sundry_default_address).to.equal('localhost');
})
})
})
describe("Config Loader - with file", function() {
var config;
before(function(done) {
process.env.HOME = path.join(__dirname, './mocks/mockHome');
process.env.sundry_redis_url = 'redis://new.url:6379/0';
config = require('../lib/Configuration/configLoader');
config.on('ready', function() {
done()
});
})
after(function(done) {
var resolved = require.resolve('../lib/Configuration/configLoader');
delete require.cache[resolved];
done()
})
describe('Uses correct values from file', function() {
it('Home directory should be correct', function() {
expect(process.env.HOME).to.equal(path.join(__dirname, './mocks/mockHome'))
})
it('Should have the correct values loaded from file', function() {
expect(config.loadedConfig.sundry_bind_address).to.equal("1.2.3.4")
})
it('Should have the correct value for missing config key', function(){
expect(config.loadedConfig.sundry_dev_ssl_port).to.equal(8443)
})
it('Should have loaded the Environment variable', function(){
expect(config.loadedConfig.sundry_redis_url).to.equal('redis://new.url:6379/0')
})
});
});
describe("Config Loader - with file and ENV overrides", function() {
var config;
before(function(done) {
process.env.HOME = path.join(__dirname, './mocks/mockHome');
process.env.sundry_redis_url = 'redis://new.url:6379/0';
process.env.sundry_bind_address = '9.9.9.9';
config = require('../lib/Configuration/configLoader');
config.on('ready', function() {
done()
});
})
after(function(done) {
var resolved = require.resolve('../lib/Configuration/configLoader');
delete require.cache[resolved];
done()
});
describe('Uses correct values from file',function() {
it('Home directory should be correct', function() {
expect(process.env.HOME).to.equal(path.join(__dirname, './mocks/mockHome'))
})
it('Should override value loaded from file with ENV variable', function() {
expect(config.loadedConfig.sundry_bind_address).to.equal('9.9.9.9')
})
it('Should have the correct value for missing config key', function(){
expect(config.loadedConfig.sundry_dev_ssl_port).to.equal(8443)
})
it('Should have loaded the Environment variable', function(){
expect(config.loadedConfig.sundry_redis_url).to.equal('redis://new.url:6379/0')
})
})
})