react / wstein / node_modules / jest-cli / node_modules / jsdom / node_modules / request / node_modules / har-validator / node_modules / is-my-json-valid / node_modules / jsonpointer / test.js
81159 viewsvar assert = require("assert");1var console = require("console");2var jsonpointer = require("./jsonpointer");34var obj = {5a: 1,6b: {7c: 28},9d: {10e: [{a:3}, {b:4}, {c:5}]11}12};1314assert.equal(jsonpointer.get(obj, "/a"), 1);15assert.equal(jsonpointer.get(obj, "/b/c"), 2);16assert.equal(jsonpointer.get(obj, "/d/e/0/a"), 3);17assert.equal(jsonpointer.get(obj, "/d/e/1/b"), 4);18assert.equal(jsonpointer.get(obj, "/d/e/2/c"), 5);1920// set returns old value21assert.equal(jsonpointer.set(obj, "/a", 2), 1);22assert.equal(jsonpointer.set(obj, "/b/c", 3), 2);23assert.equal(jsonpointer.set(obj, "/d/e/0/a", 4), 3);24assert.equal(jsonpointer.set(obj, "/d/e/1/b", 5), 4);25assert.equal(jsonpointer.set(obj, "/d/e/2/c", 6), 5);2627assert.equal(jsonpointer.get(obj, "/a"), 2);28assert.equal(jsonpointer.get(obj, "/b/c"), 3);29assert.equal(jsonpointer.get(obj, "/d/e/0/a"), 4);30assert.equal(jsonpointer.get(obj, "/d/e/1/b"), 5);31assert.equal(jsonpointer.get(obj, "/d/e/2/c"), 6);3233assert.equal(jsonpointer.get(obj, ""), obj);34assert.throws(function() {35assert.equal(jsonpointer.get(obj, "a"), 3);36});3738var complexKeys = {39"a/b": {40c: 141},42d: {43"e/f": 244},45"~1": 3,46"01": 447}4849assert.equal(jsonpointer.get(complexKeys, "/a~1b/c"), 1);50assert.equal(jsonpointer.get(complexKeys, "/d/e~1f"), 2);51assert.equal(jsonpointer.get(complexKeys, "/~01"), 3);52assert.equal(jsonpointer.get(complexKeys, "/01"), 4);53assert.throws(function() {54assert.equal(jsonpointer.get(complexKeys, "/a/b/c"), 1);55});56assert.throws(function() {57assert.equal(jsonpointer.get(complexKeys, "/~1"), 3);58});5960// draft-ietf-appsawg-json-pointer-08 has special array rules61var ary = [ "zero", "one", "two" ];6263assert.throws(function() {64assert.equal(jsonpointer.get(ary, "/01"), "one");65});66//assert.equal(jsonpointer.set(ary, "/-", "three"), null);67//assert.equal(ary[3], "three");6869// Examples from the draft:70var example = {71"foo": ["bar", "baz"],72"": 0,73"a/b": 1,74"c%d": 2,75"e^f": 3,76"g|h": 4,77"i\\j": 5,78"k\"l": 6,79" ": 7,80"m~n": 881};8283assert.equal(jsonpointer.get(example, ""), example);84var ans = jsonpointer.get(example, "/foo");85assert.equal(ans.length, 2);86assert.equal(ans[0], "bar");87assert.equal(ans[1], "baz");88assert.equal(jsonpointer.get(example, "/foo/0"), "bar");89assert.equal(jsonpointer.get(example, "/"), 0);90assert.equal(jsonpointer.get(example, "/a~1b"), 1);91assert.equal(jsonpointer.get(example, "/c%d"), 2);92assert.equal(jsonpointer.get(example, "/e^f"), 3);93assert.equal(jsonpointer.get(example, "/g|h"), 4);94assert.equal(jsonpointer.get(example, "/i\\j"), 5);95assert.equal(jsonpointer.get(example, "/k\"l"), 6);96assert.equal(jsonpointer.get(example, "/ "), 7);97assert.equal(jsonpointer.get(example, "/m~0n"), 8);9899console.log("All tests pass.");100101102