Skip to content

Commit e6877cf

Browse files
committed
Merge pull request #1 from ejeklint/master
set() didn't work and test.js wasn't testing set() properly
2 parents 8f818ef + 26f85e4 commit e6877cf

2 files changed

Lines changed: 13 additions & 12 deletions

File tree

jsonpointer.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ var traverse = function(obj, pointer, value) {
1717
return obj[part];
1818
}
1919
} else { // keep traversin!
20-
return traverse(obj[part], pointer);
20+
return traverse(obj[part], pointer, value);
2121
}
2222
} else {
2323
throw("Value for pointer '" + pointer + "' not found.");
@@ -43,7 +43,7 @@ var get = function(obj, pointer) {
4343
var set = function(obj, pointer, value) {
4444
validate_input(obj, pointer);
4545
pointer = pointer.split("/").slice(1);
46-
return traverse(obj, pointer);
46+
return traverse(obj, pointer, value);
4747
}
4848

4949
exports.get = get

test.js

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,17 @@ assert.equal(jsonpointer.get(obj, "/d/e/0/a"), 3);
1818
assert.equal(jsonpointer.get(obj, "/d/e/1/b"), 4);
1919
assert.equal(jsonpointer.get(obj, "/d/e/2/c"), 5);
2020

21-
assert.equal(jsonpointer.set(obj, "/a"), 1);
22-
assert.equal(jsonpointer.set(obj, "/b/c"), 2);
23-
assert.equal(jsonpointer.set(obj, "/d/e/0/a"), 3);
24-
assert.equal(jsonpointer.set(obj, "/d/e/1/b"), 4);
25-
assert.equal(jsonpointer.set(obj, "/d/e/2/c"), 5);
21+
// set returns old value
22+
assert.equal(jsonpointer.set(obj, "/a", 2), 1);
23+
assert.equal(jsonpointer.set(obj, "/b/c", 3), 2);
24+
assert.equal(jsonpointer.set(obj, "/d/e/0/a", 4), 3);
25+
assert.equal(jsonpointer.set(obj, "/d/e/1/b", 5), 4);
26+
assert.equal(jsonpointer.set(obj, "/d/e/2/c", 6), 5);
2627

27-
assert.equal(jsonpointer.get(obj, "/a"), 1);
28-
assert.equal(jsonpointer.get(obj, "/b/c"), 2);
29-
assert.equal(jsonpointer.get(obj, "/d/e/0/a"), 3);
30-
assert.equal(jsonpointer.get(obj, "/d/e/1/b"), 4);
31-
assert.equal(jsonpointer.get(obj, "/d/e/2/c"), 5);
28+
assert.equal(jsonpointer.get(obj, "/a"), 2);
29+
assert.equal(jsonpointer.get(obj, "/b/c"), 3);
30+
assert.equal(jsonpointer.get(obj, "/d/e/0/a"), 4);
31+
assert.equal(jsonpointer.get(obj, "/d/e/1/b"), 5);
32+
assert.equal(jsonpointer.get(obj, "/d/e/2/c"), 6);
3233

3334
console.log("All tests pass.");

0 commit comments

Comments
 (0)