Skip to content
Snippets Groups Projects
configTEST.js 1.74 KiB
Newer Older
clemo's avatar
clemo committed
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';
clemo's avatar
clemo committed
      let config = new c.Config(__dirname + '/assets.config/', 'TEST').config;
      expect(config).property('db').to.be.a('string').to.equal('test.db');
clemo's avatar
clemo committed
      done();
    });

    it('should get config from env', (done) => {
      process.env.NODE_ENV = 'test';
      process.env.TEST_DB = 'env.db';
clemo's avatar
clemo committed
      let config = new c.Config(__dirname + '/assets.config/', 'TEST').config;
      expect(config).property('db').to.be.a('string').to.equal('env.db');
clemo's avatar
clemo committed
      delete process.env.TEST_DB;
      done();
    });
    it('should merge file & env', (done) => {
      process.env.NODE_ENV = 'test';
      process.env.TEST_SESSION = 'env.db';
clemo's avatar
clemo committed
      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');
clemo's avatar
clemo committed
      done();
    });
clemo's avatar
clemo committed
    it('should merge deep', (done) => {
      {
      process.env.NODE_ENV = 'test';
      let config =
          new c.Config(__dirname + '/assets.config/', 'DEEP').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;
    expect(config).property('deep').property('one').equal(1);
    expect(config).property('deep').property('zero').equal(0);
    done();
    }
});
})
clemo's avatar
clemo committed
});