@@ -40,10 +40,25 @@ assert.equal(jsonpointer.get(obj, '/d/e/0/a'), 4)
40
40
assert . equal ( jsonpointer . get ( obj , '/d/e/1/b' ) , 5 )
41
41
assert . equal ( jsonpointer . get ( obj , '/d/e/2/c' ) , 6 )
42
42
43
+ // can set `null` as a value
44
+ assert . equal ( jsonpointer . set ( obj , '/f/g/h/foo/0' , null ) , 'test' )
45
+ assert . strictEqual ( jsonpointer . get ( obj , '/f/g/h/foo/0' ) , null )
46
+ assert . equal ( jsonpointer . set ( obj , '/b/c' , null ) , 3 )
47
+ assert . strictEqual ( jsonpointer . get ( obj , '/b/c' ) , null )
48
+
43
49
assert . equal ( jsonpointer . get ( obj , '' ) , obj )
44
50
assert . throws ( function ( ) { jsonpointer . get ( obj , 'a' ) } , validateError )
45
51
assert . throws ( function ( ) { jsonpointer . get ( obj , 'a/' ) } , validateError )
46
52
53
+ // can unset values with `undefined`
54
+ jsonpointer . set ( obj , '/a' , undefined )
55
+ assert . strictEqual ( jsonpointer . get ( obj , '/a' ) , undefined )
56
+ jsonpointer . set ( obj , '/d/e/1' , undefined )
57
+ assert . strictEqual ( jsonpointer . get ( obj , '/d/e/1' ) , undefined )
58
+
59
+ // returns `undefined` when path extends beyond any existing objects
60
+ assert . strictEqual ( jsonpointer . get ( obj , '/x/y/z' ) , undefined )
61
+
47
62
function validateError ( err ) {
48
63
if ( ( err instanceof Error ) && / I n v a l i d J S O N p o i n t e r / . test ( err . message ) ) {
49
64
return true
0 commit comments