import * as c from '../../lib/config.js'; import {expect} from 'chai'; let defaultConfig = c.config; /*globals describe,it*/ describe('lib::CONFIG', () => { 'use strict'; describe('constructor', () => { it('should get config from file', (done) => { process.env.NODE_ENV = 'test'; let config = new c.Config(__dirname + '/assets.config/', 'TEST').config; expect(config).property('db').to.be.a('string').to.equal('test.db'); done(); }); it('should get config from env', (done) => { process.env.NODE_ENV = 'test'; process.env.TEST_DB = 'env.db'; let config = new c.Config(__dirname + '/assets.config/', 'TEST').config; expect(config).property('db').to.be.a('string').to.equal('env.db'); delete process.env.TEST_DB; done(); }); it('should merge file & env', (done) => { process.env.NODE_ENV = 'test'; process.env.TEST_SESSION = 'env.db'; let config = new c.Config(__dirname + '/assets.config/', 'TEST').config; expect(config).property('db').to.be.a('string').to.equal('test.db'); expect(config).property('session').to.be.a('string').to.equal('env.db'); done(); }); it('should merge deep', (done) => { { process.env.NODE_ENV = 'test'; let config = new c.Config(__dirname + '/assets.config/', 'DEEP').config; console.log(config); expect(config).property('deep').property('one').equal(1); expect(config).property('deep').property('zero').equal(2); } { process.env.NODE_ENV = 'production'; let config = new c.Config(__dirname + '/assets.config/', 'DEEPTEST').config; console.log(config); expect(config).property('deep').property('one').equal(1); expect(config).property('deep').property('zero').equal(0); done(); } }); }) });