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.
|
||||
// License text available at https://opensource.org/licenses/MIT
|
||||
|
||||
var cloneDeep = require('lodash').cloneDeep;
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
var debug = require('debug')('loopback:boot:config-loader');
|
||||
|
@ -125,11 +126,12 @@ function findConfigFiles(appRootDir, env, name) {
|
|||
*/
|
||||
function loadConfigFiles(files) {
|
||||
return files.map(function(f) {
|
||||
var config = require(f);
|
||||
var config = cloneDeep(require(f));
|
||||
Object.defineProperty(config, '_filename', {
|
||||
enumerable: false,
|
||||
value: f,
|
||||
});
|
||||
debug('loaded config file %s: %j', f, 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