@@ -475,6 +475,44 @@ describe('Parse Object', () => {
475
475
assert . equal ( result . get ( 'objectField' ) . string , 'hello' ) ;
476
476
} ) ;
477
477
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
+
478
516
it ( 'can unset nested fields two levels' , async ( ) => {
479
517
const obj = new TestObject ( {
480
518
objectField : {
@@ -497,6 +535,27 @@ describe('Parse Object', () => {
497
535
assert . equal ( result . get ( 'objectField' ) . string , 'hello' ) ;
498
536
} ) ;
499
537
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
+
500
559
it ( 'can unset non existing fields' , async ( ) => {
501
560
const obj = new TestObject ( ) ;
502
561
obj . set ( 'objectField' , { number : 5 } ) ;
0 commit comments