Merge pull request #103 from PradnyaBaviskar/lb-explorer-issue-51

Add feature to disable component
This commit is contained in:
Miroslav Bajtoš 2015-03-10 11:18:46 +01:00
commit df81d5487c
2 changed files with 33 additions and 13 deletions

View File

@ -480,18 +480,20 @@ function resolveMiddlewareParams(rootDir, params) {
}
function buildComponentInstructions(rootDir, componentConfig) {
return Object.keys(componentConfig).map(function(name) {
var sourceFile;
if (name.indexOf('./') === 0 || name.indexOf('../') === 0) {
// Relative path
sourceFile = path.resolve(rootDir, name);
} else {
sourceFile = require.resolve(name);
}
return Object.keys(componentConfig)
.filter(function(name) { return !!componentConfig[name]; })
.map(function(name) {
var sourceFile;
if (name.indexOf('./') === 0 || name.indexOf('../') === 0) {
// Relative path
sourceFile = path.resolve(rootDir, name);
} else {
sourceFile = require.resolve(name);
}
return {
sourceFile: sourceFile,
config: componentConfig[name]
};
});
return {
sourceFile: sourceFile,
config: componentConfig[name]
};
});
}

View File

@ -468,9 +468,27 @@ describe('executor', function() {
boot(app, appdir.PATH);
expect(Object.keys(require.cache)).to.include(
appdir.resolve('components/test-component/index.js'));
expect(app.componentOptions).to.eql({ option: 'value' });
});
it('disables component when configuration is not set', function() {
appdir.writeConfigFileSync('component-config.json', {
'./components/test-component': false
});
appdir.writeFileSync('components/test-component/index.js',
'module.exports = ' +
'function(app, options) { app.componentOptions = options; }');
boot(app, appdir.PATH);
expect(Object.keys(require.cache)).to.not.include(
appdir.resolve('components/test-component/index.js'));
});
it('configures middleware (that requires `this`)', function(done) {
var passportPath = require.resolve('./fixtures/passport');