1 | var 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 |
|
43 | test("decode from file", function (t) {
|
44 | var d = i.decode(data)
|
45 | t.deepEqual(d, expectD)
|
46 | t.end()
|
47 | })
|
48 |
|
49 | test("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 | })
|