required() method
This commit is contained in:
parent
ddee9bc8f5
commit
37a84ae8df
2 changed files with 36 additions and 0 deletions
|
@ -287,6 +287,31 @@ Provider.prototype.set = function (key, value, callback) {
|
||||||
return this._execute('set', 2, key, value, callback);
|
return this._execute('set', 2, key, value, callback);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// ### function required (keys)
|
||||||
|
// #### @keys {array} List of keys
|
||||||
|
// Throws an error if any of `keys` has no value, otherwise returns `true`
|
||||||
|
Provider.prototype.required = function (keys) {
|
||||||
|
if (!Array.isArray(keys)) {
|
||||||
|
throw new Error('Incorrect parameter, array expected');
|
||||||
|
}
|
||||||
|
|
||||||
|
var missing = [];
|
||||||
|
keys.forEach(function(key) {
|
||||||
|
if (typeof this.get(key) === 'undefined') {
|
||||||
|
missing.push(key);
|
||||||
|
}
|
||||||
|
}, this);
|
||||||
|
|
||||||
|
if (missing.length) {
|
||||||
|
throw new Error('Missing required keys: ' + missing.join(', '));
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
// ### function reset (callback)
|
// ### function reset (callback)
|
||||||
// #### @callback {function} **Optional** Continuation to respond to when complete.
|
// #### @callback {function} **Optional** Continuation to respond to when complete.
|
||||||
|
|
|
@ -24,6 +24,7 @@ vows.describe('nconf').addBatch({
|
||||||
assert.isFunction(nconf.load);
|
assert.isFunction(nconf.load);
|
||||||
assert.isFunction(nconf.save);
|
assert.isFunction(nconf.save);
|
||||||
assert.isFunction(nconf.reset);
|
assert.isFunction(nconf.reset);
|
||||||
|
assert.isFunction(nconf.required);
|
||||||
},
|
},
|
||||||
"the use() method": {
|
"the use() method": {
|
||||||
"should instaniate the correct store": function () {
|
"should instaniate the correct store": function () {
|
||||||
|
@ -41,6 +42,16 @@ vows.describe('nconf').addBatch({
|
||||||
data = JSON.parse(data.toString());
|
data = JSON.parse(data.toString());
|
||||||
assert.equal(nconf.version, data.version);
|
assert.equal(nconf.version, data.version);
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"the required() method": {
|
||||||
|
"should throw error with missing keys": function() {
|
||||||
|
nconf.set('foo:bar:bazz', 'buzz');
|
||||||
|
assert.throws(nconf.required.bind(null, ['missingkey', 'foo:bar:bazz']), Error);
|
||||||
|
},
|
||||||
|
"should return true if all required keys exist": function() {
|
||||||
|
nconf.set('foo:bar:bazz', 'buzz');
|
||||||
|
assert.isTrue(nconf.required(['foo:bar:bazz']));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}).addBatch({
|
}).addBatch({
|
||||||
|
|
Loading…
Reference in a new issue