[minor test] Add tests for File store save()
. Improve default file format to pretty print the JSON output
This commit is contained in:
parent
96859f913c
commit
067d58a99d
3 changed files with 35 additions and 3 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,3 +1,3 @@
|
||||||
.DS_Store
|
.DS_Store
|
||||||
config.json
|
config.json
|
||||||
test/fixtures/store.json
|
test/fixtures/*.json
|
|
@ -24,7 +24,12 @@ var File = exports.File = function (options) {
|
||||||
|
|
||||||
this.type = 'file';
|
this.type = 'file';
|
||||||
this.file = options.file;
|
this.file = options.file;
|
||||||
this.format = options.format || JSON;
|
this.format = options.format || {
|
||||||
|
stringify: function (obj) {
|
||||||
|
return JSON.stringify(obj, null, 2)
|
||||||
|
},
|
||||||
|
parse: JSON.parse
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
// Inherit from the Memory store
|
// Inherit from the Memory store
|
||||||
|
|
|
@ -19,7 +19,7 @@ vows.describe('nconf/stores/file').addBatch({
|
||||||
"When using the nconf file store": {
|
"When using the nconf file store": {
|
||||||
topic: function () {
|
topic: function () {
|
||||||
var filePath = path.join(__dirname, 'fixtures', 'store.json');
|
var filePath = path.join(__dirname, 'fixtures', 'store.json');
|
||||||
fs.writeFileSync(filePath, JSON.stringify(data));
|
fs.writeFileSync(filePath, JSON.stringify(data, null, 2));
|
||||||
store = new nconf.stores.File({ file: filePath });
|
store = new nconf.stores.File({ file: filePath });
|
||||||
return null;
|
return null;
|
||||||
},
|
},
|
||||||
|
@ -33,6 +33,33 @@ vows.describe('nconf/stores/file').addBatch({
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}).addBatch({
|
||||||
|
"When using the nconf file store": {
|
||||||
|
topic: function () {
|
||||||
|
var tmpPath = path.join(__dirname, 'fixtures', 'tmp.json'),
|
||||||
|
tmpStore = new nconf.stores.File({ file: tmpPath });
|
||||||
|
return tmpStore
|
||||||
|
},
|
||||||
|
"the save() method": {
|
||||||
|
topic: function (tmpStore) {
|
||||||
|
var that = this;
|
||||||
|
|
||||||
|
Object.keys(store.store).forEach(function (key) {
|
||||||
|
tmpStore.set(key, store.store[key]);
|
||||||
|
});
|
||||||
|
|
||||||
|
tmpStore.save(function () {
|
||||||
|
fs.readFile(tmpStore.file, function (err, data) {
|
||||||
|
return err ? that.callback(err) : that.callback(err, JSON.parse(data.toString()));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
"should save the data correctly": function (err, data) {
|
||||||
|
assert.isNull(err);
|
||||||
|
assert.deepEqual(data, store.store);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}).addBatch({
|
}).addBatch({
|
||||||
"When using the nconf file store": {
|
"When using the nconf file store": {
|
||||||
"the set() method": {
|
"the set() method": {
|
||||||
|
|
Loading…
Reference in a new issue