Stop caching config files
This commit is contained in:
parent
58d9322190
commit
7b226b212e
|
@ -3,6 +3,7 @@
|
||||||
// This file is licensed under the MIT License.
|
// This file is licensed under the MIT License.
|
||||||
// License text available at https://opensource.org/licenses/MIT
|
// License text available at https://opensource.org/licenses/MIT
|
||||||
|
|
||||||
|
var cloneDeep = require('lodash').cloneDeep;
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
var path = require('path');
|
var path = require('path');
|
||||||
var debug = require('debug')('loopback:boot:config-loader');
|
var debug = require('debug')('loopback:boot:config-loader');
|
||||||
|
@ -125,11 +126,12 @@ function findConfigFiles(appRootDir, env, name) {
|
||||||
*/
|
*/
|
||||||
function loadConfigFiles(files) {
|
function loadConfigFiles(files) {
|
||||||
return files.map(function(f) {
|
return files.map(function(f) {
|
||||||
var config = require(f);
|
var config = cloneDeep(require(f));
|
||||||
Object.defineProperty(config, '_filename', {
|
Object.defineProperty(config, '_filename', {
|
||||||
enumerable: false,
|
enumerable: false,
|
||||||
value: f,
|
value: f,
|
||||||
});
|
});
|
||||||
|
debug('loaded config file %s: %j', f, config);
|
||||||
return config;
|
return config;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
// 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);
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue