@@ -463,6 +463,44 @@ describe('Parse Object', () => {
463
463
assert . equal ( result . get ( 'objectField' ) . string , 'hello' ) ;
464
464
} ) ;
465
465
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
+
466
504
it ( 'can unset nested fields two levels' , async ( ) => {
467
505
const obj = new TestObject ( {
468
506
objectField : {
@@ -485,6 +523,27 @@ describe('Parse Object', () => {
485
523
assert . equal ( result . get ( 'objectField' ) . string , 'hello' ) ;
486
524
} ) ;
487
525
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
+
488
547
it ( 'can unset non existing fields' , async ( ) => {
489
548
const obj = new TestObject ( ) ;
490
549
obj . set ( 'objectField' , { number : 5 } ) ;
0 commit comments