refactor: stop config caching

This commit is contained in:
David Cheung 2016-09-14 16:02:34 -04:00
parent 2fa3ff164c
commit 90fda8ab80
2 changed files with 34 additions and 37 deletions

View File

@ -509,6 +509,40 @@ describe('compiler', function() {
});
});
it('does not cache loaded values', function(done) {
appdir.createConfigFilesSync();
appdir.writeConfigFileSync('middleware.json', {
'strong-error-handler': { params: { debug: false }},
});
appdir.writeConfigFileSync('middleware.development.json', {
'strong-error-handler': { params: { debug: true }},
});
// Here we load main config and merge it with DEV overrides
var bootOptions = {
appRootDir: appdir.PATH,
env: 'development',
phases: ['load'],
};
var productionBootOptions = {
appRootDir: appdir.PATH,
env: 'production',
phases: ['load'],
};
boot.compile(bootOptions, function(err, context) {
var config = context.configurations.middleware;
expect(config['strong-error-handler'].params.debug,
'debug in development').to.equal(true);
boot.compile(productionBootOptions, function(err, context2) {
var config = context2.configurations.middleware;
expect(config['strong-error-handler'].params.debug,
'debug in production').to.equal(false);
done();
});
});
});
it('allows env specific model-config json', function(done) {
appdir.createConfigFilesSync();
appdir.writeConfigFileSync('model-config.local.json', {

View File

@ -1,37 +0,0 @@
// Copyright IBM Corp. 2014,2016. All Rights Reserved.
// Node module: loopback-boot
// This file is licensed under the MIT License.
// License text available at https://opensource.org/licenses/MIT
var configLoader = require('../lib/config-loader');
var fs = require('fs-extra');
var path = require('path');
var expect = require('chai').expect;
var sandbox = require('./helpers/sandbox');
var appdir = require('./helpers/appdir');
describe('config-loader', function() {
beforeEach(sandbox.reset);
beforeEach(appdir.init);
it('does not cache loaded values', function() {
appdir.createConfigFilesSync();
appdir.writeConfigFileSync('middleware.json', {
'strong-error-handler': { params: { debug: false }},
});
appdir.writeConfigFileSync('middleware.development.json', {
'strong-error-handler': { params: { debug: true }},
});
// Here we load main config and merge it with DEV overrides
var config = configLoader.loadMiddleware(appdir.PATH, 'development');
expect(config['strong-error-handler'].params.debug, 'debug in development')
.to.equal(true);
// When we load the config file again in different environment,
// only the main file is loaded and no overrides are applied.
config = configLoader.loadMiddleware(appdir.PATH, 'production');
expect(config['strong-error-handler'].params.debug, 'debug in production')
.to.equal(false);
});
});