|
1 | | -var assert = require('assert'); |
2 | | -var jsonpointer = require('./jsonpointer'); |
| 1 | +var assert = require('assert') |
| 2 | +var jsonpointer = require('./jsonpointer') |
3 | 3 |
|
4 | 4 | var obj = { |
5 | 5 | a: 1, |
6 | 6 | b: { |
7 | 7 | c: 2 |
8 | 8 | }, |
9 | 9 | d: { |
10 | | - e: [{a:3}, {b:4}, {c:5}] |
| 10 | + e: [{ a: 3 }, { b: 4 }, { c: 5 }] |
11 | 11 | } |
12 | | -}; |
| 12 | +} |
13 | 13 |
|
14 | | -assert.equal(jsonpointer.get(obj, "/a"), 1); |
15 | | -assert.equal(jsonpointer.get(obj, "/b/c"), 2); |
16 | | -assert.equal(jsonpointer.get(obj, "/d/e/0/a"), 3); |
17 | | -assert.equal(jsonpointer.get(obj, "/d/e/1/b"), 4); |
18 | | -assert.equal(jsonpointer.get(obj, "/d/e/2/c"), 5); |
| 14 | +assert.equal(jsonpointer.get(obj, '/a'), 1) |
| 15 | +assert.equal(jsonpointer.get(obj, '/b/c'), 2) |
| 16 | +assert.equal(jsonpointer.get(obj, '/d/e/0/a'), 3) |
| 17 | +assert.equal(jsonpointer.get(obj, '/d/e/1/b'), 4) |
| 18 | +assert.equal(jsonpointer.get(obj, '/d/e/2/c'), 5) |
19 | 19 |
|
20 | 20 | // set returns old value |
21 | | -assert.equal(jsonpointer.set(obj, "/a", 2), 1); |
22 | | -assert.equal(jsonpointer.set(obj, "/b/c", 3), 2); |
23 | | -assert.equal(jsonpointer.set(obj, "/d/e/0/a", 4), 3); |
24 | | -assert.equal(jsonpointer.set(obj, "/d/e/1/b", 5), 4); |
25 | | -assert.equal(jsonpointer.set(obj, "/d/e/2/c", 6), 5); |
| 21 | +assert.equal(jsonpointer.set(obj, '/a', 2), 1) |
| 22 | +assert.equal(jsonpointer.set(obj, '/b/c', 3), 2) |
| 23 | +assert.equal(jsonpointer.set(obj, '/d/e/0/a', 4), 3) |
| 24 | +assert.equal(jsonpointer.set(obj, '/d/e/1/b', 5), 4) |
| 25 | +assert.equal(jsonpointer.set(obj, '/d/e/2/c', 6), 5) |
26 | 26 |
|
27 | 27 | // set nested properties |
28 | | -assert.equal(jsonpointer.set(obj, "/f/g/h/i", 6), undefined); |
29 | | -assert.equal(jsonpointer.get(obj, "/f/g/h/i"), 6); |
| 28 | +assert.equal(jsonpointer.set(obj, '/f/g/h/i', 6), undefined) |
| 29 | +assert.equal(jsonpointer.get(obj, '/f/g/h/i'), 6) |
30 | 30 |
|
31 | 31 | // set an array |
32 | | -assert.equal(jsonpointer.set(obj, "/f/g/h/foo/-", 'test'), undefined); |
33 | | -arr = jsonpointer.get(obj, "/f/g/h/foo") |
34 | | -assert(Array.isArray(arr), 'set /- creates an array.'); |
35 | | -assert.equal(arr[0], 'test'); |
| 32 | +assert.equal(jsonpointer.set(obj, '/f/g/h/foo/-', 'test'), undefined) |
| 33 | +var arr = jsonpointer.get(obj, '/f/g/h/foo') |
| 34 | +assert(Array.isArray(arr), 'set /- creates an array.') |
| 35 | +assert.equal(arr[0], 'test') |
36 | 36 |
|
37 | | -assert.equal(jsonpointer.get(obj, "/a"), 2); |
38 | | -assert.equal(jsonpointer.get(obj, "/b/c"), 3); |
39 | | -assert.equal(jsonpointer.get(obj, "/d/e/0/a"), 4); |
40 | | -assert.equal(jsonpointer.get(obj, "/d/e/1/b"), 5); |
41 | | -assert.equal(jsonpointer.get(obj, "/d/e/2/c"), 6); |
| 37 | +assert.equal(jsonpointer.get(obj, '/a'), 2) |
| 38 | +assert.equal(jsonpointer.get(obj, '/b/c'), 3) |
| 39 | +assert.equal(jsonpointer.get(obj, '/d/e/0/a'), 4) |
| 40 | +assert.equal(jsonpointer.get(obj, '/d/e/1/b'), 5) |
| 41 | +assert.equal(jsonpointer.get(obj, '/d/e/2/c'), 6) |
42 | 42 |
|
43 | | -assert.equal(jsonpointer.get(obj, ""), obj); |
44 | | -assert.throws(function(){ jsonpointer.get(obj, "a"); }, validateError); |
45 | | -assert.throws(function(){ jsonpointer.get(obj, "a/"); }, validateError); |
| 43 | +assert.equal(jsonpointer.get(obj, ''), obj) |
| 44 | +assert.throws(function () { jsonpointer.get(obj, 'a') }, validateError) |
| 45 | +assert.throws(function () { jsonpointer.get(obj, 'a/') }, validateError) |
46 | 46 |
|
47 | | -function validateError(err) { |
48 | | - if ( (err instanceof Error) && /Invalid JSON pointer/.test(err.message) ) { |
49 | | - return true; |
| 47 | +function validateError (err) { |
| 48 | + if ((err instanceof Error) && /Invalid JSON pointer/.test(err.message)) { |
| 49 | + return true |
50 | 50 | } |
51 | 51 | } |
52 | 52 |
|
53 | 53 | var complexKeys = { |
54 | | - "a/b": { |
| 54 | + 'a/b': { |
55 | 55 | c: 1 |
56 | 56 | }, |
57 | 57 | d: { |
58 | | - "e/f": 2 |
| 58 | + 'e/f': 2 |
59 | 59 | }, |
60 | | - "~1": 3, |
61 | | - "01": 4 |
| 60 | + '~1': 3, |
| 61 | + '01': 4 |
62 | 62 | } |
63 | 63 |
|
64 | | -assert.equal(jsonpointer.get(complexKeys, "/a~1b/c"), 1); |
65 | | -assert.equal(jsonpointer.get(complexKeys, "/d/e~1f"), 2); |
66 | | -assert.equal(jsonpointer.get(complexKeys, "/~01"), 3); |
67 | | -assert.equal(jsonpointer.get(complexKeys, "/01"), 4); |
68 | | -assert.equal(jsonpointer.get(complexKeys, "/a/b/c"), null); |
69 | | -assert.equal(jsonpointer.get(complexKeys, "/~1"), null); |
| 64 | +assert.equal(jsonpointer.get(complexKeys, '/a~1b/c'), 1) |
| 65 | +assert.equal(jsonpointer.get(complexKeys, '/d/e~1f'), 2) |
| 66 | +assert.equal(jsonpointer.get(complexKeys, '/~01'), 3) |
| 67 | +assert.equal(jsonpointer.get(complexKeys, '/01'), 4) |
| 68 | +assert.equal(jsonpointer.get(complexKeys, '/a/b/c'), null) |
| 69 | +assert.equal(jsonpointer.get(complexKeys, '/~1'), null) |
70 | 70 |
|
71 | 71 | // draft-ietf-appsawg-json-pointer-08 has special array rules |
72 | | -var ary = [ "zero", "one", "two" ]; |
73 | | -assert.equal(jsonpointer.get(ary, "/01"), null); |
| 72 | +var ary = [ 'zero', 'one', 'two' ] |
| 73 | +assert.equal(jsonpointer.get(ary, '/01'), null) |
74 | 74 |
|
75 | | -assert.equal(jsonpointer.set(ary, "/-", "three"), null); |
76 | | -assert.equal(ary[3], "three"); |
| 75 | +assert.equal(jsonpointer.set(ary, '/-', 'three'), null) |
| 76 | +assert.equal(ary[3], 'three') |
77 | 77 |
|
78 | 78 | // Examples from the draft: |
79 | 79 | var example = { |
80 | | - "foo": ["bar", "baz"], |
81 | | - "": 0, |
82 | | - "a/b": 1, |
83 | | - "c%d": 2, |
84 | | - "e^f": 3, |
85 | | - "g|h": 4, |
86 | | - "i\\j": 5, |
87 | | - "k\"l": 6, |
88 | | - " ": 7, |
89 | | - "m~n": 8 |
90 | | -}; |
| 80 | + 'foo': ['bar', 'baz'], |
| 81 | + '': 0, |
| 82 | + 'a/b': 1, |
| 83 | + 'c%d': 2, |
| 84 | + 'e^f': 3, |
| 85 | + 'g|h': 4, |
| 86 | + 'i\\j': 5, |
| 87 | + 'k\'l': 6, |
| 88 | + ' ': 7, |
| 89 | + 'm~n': 8 |
| 90 | +} |
91 | 91 |
|
92 | | -assert.equal(jsonpointer.get(example, ""), example); |
93 | | -var ans = jsonpointer.get(example, "/foo"); |
94 | | -assert.equal(ans.length, 2); |
95 | | -assert.equal(ans[0], "bar"); |
96 | | -assert.equal(ans[1], "baz"); |
97 | | -assert.equal(jsonpointer.get(example, "/foo/0"), "bar"); |
98 | | -assert.equal(jsonpointer.get(example, "/"), 0); |
99 | | -assert.equal(jsonpointer.get(example, "/a~1b"), 1); |
100 | | -assert.equal(jsonpointer.get(example, "/c%d"), 2); |
101 | | -assert.equal(jsonpointer.get(example, "/e^f"), 3); |
102 | | -assert.equal(jsonpointer.get(example, "/g|h"), 4); |
103 | | -assert.equal(jsonpointer.get(example, "/i\\j"), 5); |
104 | | -assert.equal(jsonpointer.get(example, "/k\"l"), 6); |
105 | | -assert.equal(jsonpointer.get(example, "/ "), 7); |
106 | | -assert.equal(jsonpointer.get(example, "/m~0n"), 8); |
| 92 | +assert.equal(jsonpointer.get(example, ''), example) |
| 93 | +var ans = jsonpointer.get(example, '/foo') |
| 94 | +assert.equal(ans.length, 2) |
| 95 | +assert.equal(ans[0], 'bar') |
| 96 | +assert.equal(ans[1], 'baz') |
| 97 | +assert.equal(jsonpointer.get(example, '/foo/0'), 'bar') |
| 98 | +assert.equal(jsonpointer.get(example, '/'), 0) |
| 99 | +assert.equal(jsonpointer.get(example, '/a~1b'), 1) |
| 100 | +assert.equal(jsonpointer.get(example, '/c%d'), 2) |
| 101 | +assert.equal(jsonpointer.get(example, '/e^f'), 3) |
| 102 | +assert.equal(jsonpointer.get(example, '/g|h'), 4) |
| 103 | +assert.equal(jsonpointer.get(example, '/i\\j'), 5) |
| 104 | +assert.equal(jsonpointer.get(example, '/k\'l'), 6) |
| 105 | +assert.equal(jsonpointer.get(example, '/ '), 7) |
| 106 | +assert.equal(jsonpointer.get(example, '/m~0n'), 8) |
107 | 107 |
|
108 | | -console.log("All tests pass."); |
| 108 | +console.log('All tests pass.') |
0 commit comments