1 var CC = require('../index.js').ConfigChain
2 var test = require('tap').test
5 var f2 = '/tmp/f2.json'
7 var ini = require('ini')
9 var f1data = {foo: {bar: 'baz'}, bloo: 'jaus'}
10 var f2data = {oof: {rab: 'zab'}, oolb: 'suaj'}
12 var fs = require('fs')
14 fs.writeFileSync(f1, ini.stringify(f1data), 'utf8')
15 fs.writeFileSync(f2, JSON.stringify(f2data), 'utf8')
17 test('test saving and loading ini files', function (t) {
19 .add({grelb:'blerg'}, 'opt')
20 .addFile(f1, 'ini', 'inifile')
21 .addFile(f2, 'json', 'jsonfile')
22 .on('load', function (cc) {
24 t.same(cc.snapshot, { grelb: 'blerg',
30 t.same(cc.list, [ { grelb: 'blerg' },
31 { bloo: 'jaus', foo: { bar: 'baz' } },
32 { oof: { rab: 'zab' }, oolb: 'suaj' } ])
34 cc.set('grelb', 'brelg', 'opt')
35 .set('foo', 'zoo', 'inifile')
36 .set('oof', 'ooz', 'jsonfile')
39 .on('save', function () {
40 t.equal(fs.readFileSync(f1, 'utf8'),
41 "bloo=jaus\nfoo=zoo\n")
42 t.equal(fs.readFileSync(f2, 'utf8'),
43 "{\"oof\":\"ooz\",\"oolb\":\"suaj\"}")
45 t.same(cc.snapshot, { grelb: 'brelg',
51 t.same(cc.list, [ { grelb: 'brelg' },
52 { bloo: 'jaus', foo: 'zoo' },
53 { oof: 'ooz', oolb: 'suaj' } ])