| var CC = require('../index.js').ConfigChain |
| var test = require('tap').test |
| |
| var f1 = '/tmp/f1.ini' |
| var f2 = '/tmp/f2.json' |
| |
| var ini = require('ini') |
| |
| var f1data = {foo: {bar: 'baz'}, bloo: 'jaus'} |
| var f2data = {oof: {rab: 'zab'}, oolb: 'suaj'} |
| |
| var fs = require('fs') |
| |
| fs.writeFileSync(f1, ini.stringify(f1data), 'utf8') |
| fs.writeFileSync(f2, JSON.stringify(f2data), 'utf8') |
| |
| test('test saving and loading ini files', function (t) { |
| new CC() |
| .add({grelb:'blerg'}, 'opt') |
| .addFile(f1, 'ini', 'inifile') |
| .addFile(f2, 'json', 'jsonfile') |
| .on('load', function (cc) { |
| |
| t.same(cc.snapshot, { grelb: 'blerg', |
| bloo: 'jaus', |
| foo: { bar: 'baz' }, |
| oof: { rab: 'zab' }, |
| oolb: 'suaj' }) |
| |
| t.same(cc.list, [ { grelb: 'blerg' }, |
| { bloo: 'jaus', foo: { bar: 'baz' } }, |
| { oof: { rab: 'zab' }, oolb: 'suaj' } ]) |
| |
| cc.set('grelb', 'brelg', 'opt') |
| .set('foo', 'zoo', 'inifile') |
| .set('oof', 'ooz', 'jsonfile') |
| .save('inifile') |
| .save('jsonfile') |
| .on('save', function () { |
| t.equal(fs.readFileSync(f1, 'utf8'), |
| "bloo = jaus\nfoo = zoo\n") |
| t.equal(fs.readFileSync(f2, 'utf8'), |
| "{\"oof\":\"ooz\",\"oolb\":\"suaj\"}") |
| |
| t.same(cc.snapshot, { grelb: 'brelg', |
| bloo: 'jaus', |
| foo: 'zoo', |
| oof: 'ooz', |
| oolb: 'suaj' }) |
| |
| t.same(cc.list, [ { grelb: 'brelg' }, |
| { bloo: 'jaus', foo: 'zoo' }, |
| { oof: 'ooz', oolb: 'suaj' } ]) |
| |
| t.pass('ok') |
| t.end() |
| }) |
| }) |
| }) |