summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/jsonpointer/test.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/jsonpointer/test.js')
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/jsonpointer/test.js175
1 files changed, 104 insertions, 71 deletions
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/jsonpointer/test.js b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/jsonpointer/test.js
index 1c67d7f7ef..e3d99630f0 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/jsonpointer/test.js
+++ b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/jsonpointer/test.js
@@ -1,5 +1,5 @@
-var assert = require("assert");
-var jsonpointer = require("./jsonpointer");
+var assert = require('assert')
+var jsonpointer = require('./jsonpointer')
var obj = {
a: 1,
@@ -7,92 +7,125 @@ var obj = {
c: 2
},
d: {
- e: [{a:3}, {b:4}, {c:5}]
+ e: [{ a: 3 }, { b: 4 }, { c: 5 }]
}
-};
+}
-assert.equal(jsonpointer.get(obj, "/a"), 1);
-assert.equal(jsonpointer.get(obj, "/b/c"), 2);
-assert.equal(jsonpointer.get(obj, "/d/e/0/a"), 3);
-assert.equal(jsonpointer.get(obj, "/d/e/1/b"), 4);
-assert.equal(jsonpointer.get(obj, "/d/e/2/c"), 5);
+assert.equal(jsonpointer.get(obj, '/a'), 1)
+assert.equal(jsonpointer.get(obj, '/b/c'), 2)
+assert.equal(jsonpointer.get(obj, '/d/e/0/a'), 3)
+assert.equal(jsonpointer.get(obj, '/d/e/1/b'), 4)
+assert.equal(jsonpointer.get(obj, '/d/e/2/c'), 5)
// set returns old value
-assert.equal(jsonpointer.set(obj, "/a", 2), 1);
-assert.equal(jsonpointer.set(obj, "/b/c", 3), 2);
-assert.equal(jsonpointer.set(obj, "/d/e/0/a", 4), 3);
-assert.equal(jsonpointer.set(obj, "/d/e/1/b", 5), 4);
-assert.equal(jsonpointer.set(obj, "/d/e/2/c", 6), 5);
-
-assert.equal(jsonpointer.get(obj, "/a"), 2);
-assert.equal(jsonpointer.get(obj, "/b/c"), 3);
-assert.equal(jsonpointer.get(obj, "/d/e/0/a"), 4);
-assert.equal(jsonpointer.get(obj, "/d/e/1/b"), 5);
-assert.equal(jsonpointer.get(obj, "/d/e/2/c"), 6);
-
-assert.equal(jsonpointer.get(obj, ""), obj);
-assert.throws(function(){ jsonpointer.get(obj, "a"); }, validateError);
-assert.throws(function(){ jsonpointer.get(obj, "a/"); }, validateError);
-
-function validateError(err) {
- if ( (err instanceof Error) && /Invalid JSON pointer/.test(err.message) ) {
- return true;
+assert.equal(jsonpointer.set(obj, '/a', 2), 1)
+assert.equal(jsonpointer.set(obj, '/b/c', 3), 2)
+assert.equal(jsonpointer.set(obj, '/d/e/0/a', 4), 3)
+assert.equal(jsonpointer.set(obj, '/d/e/1/b', 5), 4)
+assert.equal(jsonpointer.set(obj, '/d/e/2/c', 6), 5)
+
+// set nested properties
+assert.equal(jsonpointer.set(obj, '/f/g/h/i', 6), undefined)
+assert.equal(jsonpointer.get(obj, '/f/g/h/i'), 6)
+
+// set an array
+assert.equal(jsonpointer.set(obj, '/f/g/h/foo/-', 'test'), undefined)
+var arr = jsonpointer.get(obj, '/f/g/h/foo')
+assert(Array.isArray(arr), 'set /- creates an array.')
+assert.equal(arr[0], 'test')
+
+assert.equal(jsonpointer.get(obj, '/a'), 2)
+assert.equal(jsonpointer.get(obj, '/b/c'), 3)
+assert.equal(jsonpointer.get(obj, '/d/e/0/a'), 4)
+assert.equal(jsonpointer.get(obj, '/d/e/1/b'), 5)
+assert.equal(jsonpointer.get(obj, '/d/e/2/c'), 6)
+
+// can set `null` as a value
+assert.equal(jsonpointer.set(obj, '/f/g/h/foo/0', null), 'test')
+assert.strictEqual(jsonpointer.get(obj, '/f/g/h/foo/0'), null)
+assert.equal(jsonpointer.set(obj, '/b/c', null), 3)
+assert.strictEqual(jsonpointer.get(obj, '/b/c'), null)
+
+assert.equal(jsonpointer.get(obj, ''), obj)
+assert.throws(function () { jsonpointer.get(obj, 'a') }, validateError)
+assert.throws(function () { jsonpointer.get(obj, 'a/') }, validateError)
+
+// can unset values with `undefined`
+jsonpointer.set(obj, '/a', undefined)
+assert.strictEqual(jsonpointer.get(obj, '/a'), undefined)
+jsonpointer.set(obj, '/d/e/1', undefined)
+assert.strictEqual(jsonpointer.get(obj, '/d/e/1'), undefined)
+
+// returns `undefined` when path extends beyond any existing objects
+assert.strictEqual(jsonpointer.get(obj, '/x/y/z'), undefined)
+
+function validateError (err) {
+ if ((err instanceof Error) && /Invalid JSON pointer/.test(err.message)) {
+ return true
}
}
var complexKeys = {
- "a/b": {
+ 'a/b': {
c: 1
},
d: {
- "e/f": 2
+ 'e/f': 2
},
- "~1": 3,
- "01": 4
+ '~1': 3,
+ '01': 4
}
-assert.equal(jsonpointer.get(complexKeys, "/a~1b/c"), 1);
-assert.equal(jsonpointer.get(complexKeys, "/d/e~1f"), 2);
-assert.equal(jsonpointer.get(complexKeys, "/~01"), 3);
-assert.equal(jsonpointer.get(complexKeys, "/01"), 4);
-assert.equal(jsonpointer.get(complexKeys, "/a/b/c"), null);
-assert.equal(jsonpointer.get(complexKeys, "/~1"), null);
+assert.equal(jsonpointer.get(complexKeys, '/a~1b/c'), 1)
+assert.equal(jsonpointer.get(complexKeys, '/d/e~1f'), 2)
+assert.equal(jsonpointer.get(complexKeys, '/~01'), 3)
+assert.equal(jsonpointer.get(complexKeys, '/01'), 4)
+assert.equal(jsonpointer.get(complexKeys, '/a/b/c'), null)
+assert.equal(jsonpointer.get(complexKeys, '/~1'), null)
// draft-ietf-appsawg-json-pointer-08 has special array rules
-var ary = [ "zero", "one", "two" ];
-assert.equal(jsonpointer.get(ary, "/01"), null);
+var ary = [ 'zero', 'one', 'two' ]
+assert.equal(jsonpointer.get(ary, '/01'), null)
-//assert.equal(jsonpointer.set(ary, "/-", "three"), null);
-//assert.equal(ary[3], "three");
+assert.equal(jsonpointer.set(ary, '/-', 'three'), null)
+assert.equal(ary[3], 'three')
// Examples from the draft:
var example = {
- "foo": ["bar", "baz"],
- "": 0,
- "a/b": 1,
- "c%d": 2,
- "e^f": 3,
- "g|h": 4,
- "i\\j": 5,
- "k\"l": 6,
- " ": 7,
- "m~n": 8
-};
-
-assert.equal(jsonpointer.get(example, ""), example);
-var ans = jsonpointer.get(example, "/foo");
-assert.equal(ans.length, 2);
-assert.equal(ans[0], "bar");
-assert.equal(ans[1], "baz");
-assert.equal(jsonpointer.get(example, "/foo/0"), "bar");
-assert.equal(jsonpointer.get(example, "/"), 0);
-assert.equal(jsonpointer.get(example, "/a~1b"), 1);
-assert.equal(jsonpointer.get(example, "/c%d"), 2);
-assert.equal(jsonpointer.get(example, "/e^f"), 3);
-assert.equal(jsonpointer.get(example, "/g|h"), 4);
-assert.equal(jsonpointer.get(example, "/i\\j"), 5);
-assert.equal(jsonpointer.get(example, "/k\"l"), 6);
-assert.equal(jsonpointer.get(example, "/ "), 7);
-assert.equal(jsonpointer.get(example, "/m~0n"), 8);
-
-console.log("All tests pass.");
+ 'foo': ['bar', 'baz'],
+ '': 0,
+ 'a/b': 1,
+ 'c%d': 2,
+ 'e^f': 3,
+ 'g|h': 4,
+ 'i\\j': 5,
+ 'k\'l': 6,
+ ' ': 7,
+ 'm~n': 8
+}
+
+assert.equal(jsonpointer.get(example, ''), example)
+var ans = jsonpointer.get(example, '/foo')
+assert.equal(ans.length, 2)
+assert.equal(ans[0], 'bar')
+assert.equal(ans[1], 'baz')
+assert.equal(jsonpointer.get(example, '/foo/0'), 'bar')
+assert.equal(jsonpointer.get(example, '/'), 0)
+assert.equal(jsonpointer.get(example, '/a~1b'), 1)
+assert.equal(jsonpointer.get(example, '/c%d'), 2)
+assert.equal(jsonpointer.get(example, '/e^f'), 3)
+assert.equal(jsonpointer.get(example, '/g|h'), 4)
+assert.equal(jsonpointer.get(example, '/i\\j'), 5)
+assert.equal(jsonpointer.get(example, '/k\'l'), 6)
+assert.equal(jsonpointer.get(example, '/ '), 7)
+assert.equal(jsonpointer.get(example, '/m~0n'), 8)
+
+// jsonpointer.compile(path)
+var a = {foo: 'bar'}
+var pointer = jsonpointer.compile('/foo')
+assert.equal(pointer.get(a), 'bar')
+assert.equal(pointer.set(a, 'test'), 'bar')
+assert.equal(pointer.get(a), 'test')
+assert.deepEqual(a, {foo: 'test'})
+
+console.log('All tests pass.')