@@ -475,6 +475,44 @@ describe('Parse Object', () => {
475475 assert . equal ( result . get ( 'objectField' ) . string , 'hello' ) ;
476476 } ) ;
477477
478+ it ( 'can set and unset without save' , async ( ) => {
479+ const obj = new TestObject ( {
480+ objectField : {
481+ number : 5 ,
482+ string : 'hello' ,
483+ } ,
484+ } ) ;
485+ obj . unset ( 'objectField.number' ) ;
486+ assert . equal ( obj . get ( 'objectField' ) . number , undefined ) ;
487+ assert . equal ( obj . get ( 'objectField' ) . string , 'hello' ) ;
488+ await obj . save ( ) ;
489+
490+ const query = new Parse . Query ( TestObject ) ;
491+ const result = await query . get ( obj . id ) ;
492+ assert . equal ( result . get ( 'objectField' ) . number , undefined ) ;
493+ assert . equal ( result . get ( 'objectField' ) . string , 'hello' ) ;
494+ } ) ;
495+
496+ it ( 'can set and set sub-property without save' , async ( ) => {
497+ const obj = new TestObject ( {
498+ objectField : {
499+ number : 5 ,
500+ string : 'hello' ,
501+ } ,
502+ } ) ;
503+ obj . set ( 'objectField.numberb' , 4 ) ;
504+ assert . equal ( obj . get ( 'objectField' ) . number , 5 ) ;
505+ assert . equal ( obj . get ( 'objectField' ) . numberb , 4 ) ;
506+ assert . equal ( obj . get ( 'objectField' ) . string , 'hello' ) ;
507+ await obj . save ( ) ;
508+
509+ const query = new Parse . Query ( TestObject ) ;
510+ const result = await query . get ( obj . id ) ;
511+ assert . equal ( result . get ( 'objectField' ) . number , 5 ) ;
512+ assert . equal ( result . get ( 'objectField' ) . numberb , 4 ) ;
513+ assert . equal ( result . get ( 'objectField' ) . string , 'hello' ) ;
514+ } ) ;
515+
478516 it ( 'can unset nested fields two levels' , async ( ) => {
479517 const obj = new TestObject ( {
480518 objectField : {
@@ -497,6 +535,27 @@ describe('Parse Object', () => {
497535 assert . equal ( result . get ( 'objectField' ) . string , 'hello' ) ;
498536 } ) ;
499537
538+ it ( 'can unset nested fields two levels - without save between' , async ( ) => {
539+ const obj = new TestObject ( {
540+ objectField : {
541+ foo : {
542+ bar : 5 ,
543+ } ,
544+ string : 'hello' ,
545+ } ,
546+ } ) ;
547+
548+ obj . unset ( 'objectField.foo.bar' ) ;
549+ assert . equal ( obj . get ( 'objectField' ) . foo . bar , undefined ) ;
550+ assert . equal ( obj . get ( 'objectField' ) . string , 'hello' ) ;
551+ await obj . save ( ) ;
552+
553+ const query = new Parse . Query ( TestObject ) ;
554+ const result = await query . get ( obj . id ) ;
555+ assert . equal ( result . get ( 'objectField' ) . foo . bar , undefined ) ;
556+ assert . equal ( result . get ( 'objectField' ) . string , 'hello' ) ;
557+ } ) ;
558+
500559 it ( 'can unset non existing fields' , async ( ) => {
501560 const obj = new TestObject ( ) ;
502561 obj . set ( 'objectField' , { number : 5 } ) ;
0 commit comments