Skip to content

Commit

Permalink
Merge pull request #1 from ejeklint/master
Browse files Browse the repository at this point in the history
set() didn't work and test.js wasn't testing set() properly
  • Loading branch information
janl committed Jul 14, 2011
2 parents 8f818ef + 26f85e4 commit e6877cf
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 12 deletions.
4 changes: 2 additions & 2 deletions jsonpointer.js
Expand Up @@ -17,7 +17,7 @@ var traverse = function(obj, pointer, value) {
return obj[part];
}
} else { // keep traversin!
return traverse(obj[part], pointer);
return traverse(obj[part], pointer, value);
}
} else {
throw("Value for pointer '" + pointer + "' not found.");
Expand All @@ -43,7 +43,7 @@ var get = function(obj, pointer) {
var set = function(obj, pointer, value) {
validate_input(obj, pointer);
pointer = pointer.split("/").slice(1);
return traverse(obj, pointer);
return traverse(obj, pointer, value);
}

exports.get = get
Expand Down
21 changes: 11 additions & 10 deletions test.js
Expand Up @@ -18,16 +18,17 @@ 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.set(obj, "/a"), 1);
assert.equal(jsonpointer.set(obj, "/b/c"), 2);
assert.equal(jsonpointer.set(obj, "/d/e/0/a"), 3);
assert.equal(jsonpointer.set(obj, "/d/e/1/b"), 4);
assert.equal(jsonpointer.set(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"), 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"), 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);

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

0 comments on commit e6877cf

Please sign in to comment.