Add support for passing in custom env file to nconf.

This commit is contained in:
Blade Barringer
2015-11-09 18:41:04 -06:00
parent d6764d4f37
commit c8ee1eaaec
3 changed files with 22 additions and 10 deletions

View File

@@ -3,29 +3,39 @@ import setupNconf from '../../../../../website/src/libs/api-v3/setupNconf';
import nconf from 'nconf';
describe('setupNconf', () => {
before(() => {
sandbox.spy(nconf, 'argv');
sandbox.spy(nconf, 'env');
sandbox.spy(nconf, 'file');
setupNconf();
beforeEach(() => {
sandbox.stub(nconf, 'argv').returnsThis();
sandbox.stub(nconf, 'env').returnsThis();
sandbox.stub(nconf, 'file').returnsThis();
});
after(() => {
afterEach(() => {
sandbox.restore();
});
it('sets up nconf', () => {
setupNconf();
expect(nconf.argv).to.be.calledOnce;
expect(nconf.env).to.be.calledOnce;
expect(nconf.file).to.be.calledOnce;
expect(nconf.file).to.be.calledWithMatch('user', /\/config.json$/);
});
it('sets IS_PROD variable', () => {
setupNconf();
expect(nconf.get('IS_PROD')).to.exist;
});
it('sets IS_DEV variable', () => {
setupNconf();
expect(nconf.get('IS_DEV')).to.exist;
});
it('allows a custom config.json file to be passed in', () => {
setupNconf('customfile.json');
expect(nconf.file).to.be.calledOnce;
expect(nconf.file).to.be.calledWithMatch('user', 'customfile.json');
});
});

View File

@@ -14,4 +14,4 @@ global.sandbox = sinon.sandbox.create();
//------------------------------
// Load nconf for unit tests
//------------------------------
require('../../website/src/libs/api-v3/setupNconf')();
require('../../website/src/libs/api-v3/setupNconf')('./config.json.example');

View File

@@ -3,11 +3,13 @@ import { join, resolve } from 'path';
const PATH_TO_CONFIG = join(resolve(__dirname, '../../../../config.json'));
export default function setupNconf () {
export default function setupNconf (file) {
file = file || PATH_TO_CONFIG;
nconf
.argv()
.env()
.file('user', PATH_TO_CONFIG);
.file('user', file);
nconf.set('IS_PROD', nconf.get('NODE_ENV') === 'production');
nconf.set('IS_DEV', nconf.get('NODE_ENV') === 'development');