@@ -463,6 +463,44 @@ describe('Parse Object', () => {
463463 assert . equal ( result . get ( 'objectField' ) . string , 'hello' ) ;
464464 } ) ;
465465
466+ it ( 'can set and unset without save' , async ( ) => {
467+ const obj = new TestObject ( {
468+ objectField : {
469+ number : 5 ,
470+ string : 'hello' ,
471+ } ,
472+ } ) ;
473+ obj . unset ( 'objectField.number' ) ;
474+ assert . equal ( obj . get ( 'objectField' ) . number , undefined ) ;
475+ assert . equal ( obj . get ( 'objectField' ) . string , 'hello' ) ;
476+ await obj . save ( ) ;
477+
478+ const query = new Parse . Query ( TestObject ) ;
479+ const result = await query . get ( obj . id ) ;
480+ assert . equal ( result . get ( 'objectField' ) . number , undefined ) ;
481+ assert . equal ( result . get ( 'objectField' ) . string , 'hello' ) ;
482+ } ) ;
483+
484+ it ( 'can set and set sub-property without save' , async ( ) => {
485+ const obj = new TestObject ( {
486+ objectField : {
487+ number : 5 ,
488+ string : 'hello' ,
489+ } ,
490+ } ) ;
491+ obj . set ( 'objectField.numberb' , 4 ) ;
492+ assert . equal ( obj . get ( 'objectField' ) . number , 5 ) ;
493+ assert . equal ( obj . get ( 'objectField' ) . numberb , 4 ) ;
494+ assert . equal ( obj . get ( 'objectField' ) . string , 'hello' ) ;
495+ await obj . save ( ) ;
496+
497+ const query = new Parse . Query ( TestObject ) ;
498+ const result = await query . get ( obj . id ) ;
499+ assert . equal ( result . get ( 'objectField' ) . number , 5 ) ;
500+ assert . equal ( result . get ( 'objectField' ) . numberb , 4 ) ;
501+ assert . equal ( result . get ( 'objectField' ) . string , 'hello' ) ;
502+ } ) ;
503+
466504 it ( 'can unset nested fields two levels' , async ( ) => {
467505 const obj = new TestObject ( {
468506 objectField : {
@@ -485,6 +523,27 @@ describe('Parse Object', () => {
485523 assert . equal ( result . get ( 'objectField' ) . string , 'hello' ) ;
486524 } ) ;
487525
526+ it ( 'can unset nested fields two levels - without save between' , async ( ) => {
527+ const obj = new TestObject ( {
528+ objectField : {
529+ foo : {
530+ bar : 5 ,
531+ } ,
532+ string : 'hello' ,
533+ } ,
534+ } ) ;
535+
536+ obj . unset ( 'objectField.foo.bar' ) ;
537+ assert . equal ( obj . get ( 'objectField' ) . foo . bar , undefined ) ;
538+ assert . equal ( obj . get ( 'objectField' ) . string , 'hello' ) ;
539+ await obj . save ( ) ;
540+
541+ const query = new Parse . Query ( TestObject ) ;
542+ const result = await query . get ( obj . id ) ;
543+ assert . equal ( result . get ( 'objectField' ) . foo . bar , undefined ) ;
544+ assert . equal ( result . get ( 'objectField' ) . string , 'hello' ) ;
545+ } ) ;
546+
488547 it ( 'can unset non existing fields' , async ( ) => {
489548 const obj = new TestObject ( ) ;
490549 obj . set ( 'objectField' , { number : 5 } ) ;
0 commit comments