UNPKG

1.83 kBJavaScriptView Raw
1var i = require("../")
2 , tap = require("tap")
3 , test = tap.test
4 , fs = require("fs")
5 , path = require("path")
6 , fixture = path.resolve(__dirname, "./fixtures/foo.ini")
7 , data = fs.readFileSync(fixture, "utf8")
8 , d
9 , expectE = 'o = p\n'
10 + 'a with spaces = b c\n'
11 + '" xa n p " = "\\"\\r\\nyoyoyo\\r\\r\\n"\n'
12 + '"[disturbing]" = hey you never know\n'
13 + '\n'
14 + '[a]\n'
15 + 'av = a val\n'
16 + 'e = { o: p, a: '
17 + '{ av: a val, b: { c: { e: "this [value]" '
18 + '} } } }\nj = "\\"{ o: \\"p\\", a: { av:'
19 + ' \\"a val\\", b: { c: { e: \\"this [value]'
20 + '\\" } } } }\\""\n"[]" = a square?\n\n[a.b.c]\ne = 1\n'
21 + 'j = 2\n\n[x\\.y\\.z]\nx.y.z = xyz\n\n'
22 + '[x\\.y\\.z.a\\.b\\.c]\n'
23 + 'a.b.c = abc\n'
24 , expectD =
25 { o: 'p',
26 'a with spaces': 'b c',
27 " xa n p ":'"\r\nyoyoyo\r\r\n',
28 '[disturbing]': 'hey you never know',
29 a:
30 { av: 'a val',
31 e: '{ o: p, a: { av: a val, b: { c: { e: "this [value]" } } } }',
32 j: '"{ o: "p", a: { av: "a val", b: { c: { e: "this [value]" } } } }"',
33 "[]": "a square?",
34 b: { c: { e: '1', j: '2' } } },
35 'x.y.z': {
36 'x.y.z': 'xyz',
37 'a.b.c': {
38 'a.b.c': 'abc'
39 }
40 }
41 }
42
43test("decode from file", function (t) {
44 var d = i.decode(data)
45 t.deepEqual(d, expectD)
46 t.end()
47})
48
49test("encode from data", function (t) {
50 var e = i.encode(expectD)
51 t.deepEqual(e, expectE)
52
53 var obj = {log: { type:'file', level: {label:'debug', value:10} } }
54 e = i.encode(obj)
55 t.notEqual(e.slice(0, 1), '\n', 'Never a blank first line')
56 t.notEqual(e.slice(-2), '\n\n', 'Never a blank final line')
57
58 t.end()
59})