config: pass and filter JSON options to child
This commit is contained in:
parent
1216c77583
commit
3964a1785c
|
@ -166,6 +166,7 @@ class Config {
|
||||||
_filter(name, this.args, child.args);
|
_filter(name, this.args, child.args);
|
||||||
_filter(name, this.query, child.query);
|
_filter(name, this.query, child.query);
|
||||||
_filter(name, this.hash, child.hash);
|
_filter(name, this.hash, child.hash);
|
||||||
|
_filter(name, this.options, child.options);
|
||||||
|
|
||||||
return child;
|
return child;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
const assert = require('bsert');
|
||||||
|
const Config = require('../lib/config');
|
||||||
|
|
||||||
|
describe('bcfg', function() {
|
||||||
|
it('should filter options', () => {
|
||||||
|
const options = {
|
||||||
|
testString: 'hello',
|
||||||
|
childTestString: 'goodbye'
|
||||||
|
};
|
||||||
|
|
||||||
|
const parent = new Config('bcfg');
|
||||||
|
parent.inject(options);
|
||||||
|
parent.load(options);
|
||||||
|
|
||||||
|
assert.strictEqual(parent.str('test-string'), 'hello');
|
||||||
|
|
||||||
|
const child = parent.filter('child');
|
||||||
|
|
||||||
|
assert.strictEqual(child.str('test-string'), 'goodbye');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should filter argv', () => {
|
||||||
|
const parent = new Config('bcfg');
|
||||||
|
|
||||||
|
// process.argv
|
||||||
|
parent.parseArg([
|
||||||
|
'node',
|
||||||
|
'bcfg',
|
||||||
|
'--test-string=hello',
|
||||||
|
'--child-test-string=goodbye'
|
||||||
|
]);
|
||||||
|
|
||||||
|
assert.strictEqual(parent.str('test-string'), 'hello');
|
||||||
|
|
||||||
|
const child = parent.filter('child');
|
||||||
|
|
||||||
|
assert.strictEqual(child.str('test-string'), 'goodbye');
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue