@@ -507,7 +507,6 @@ describe('ParseObject', () => {
507
507
data : { foo : 'bar' } ,
508
508
} ) ;
509
509
expect ( o . dirty ( ) ) . toBe ( false ) ;
510
- expect ( o . dirty ( ) ) . toBe ( false ) ;
511
510
expect ( o . has ( 'data' ) ) . toBe ( true ) ;
512
511
513
512
o . set ( 'data.score' , 10 ) ;
@@ -519,6 +518,33 @@ describe('ParseObject', () => {
519
518
expect ( o . dirty ( 'data' ) ) . toBe ( true ) ;
520
519
} ) ;
521
520
521
+ it ( 'can set multiple nested fields (regression test for #1450)' , ( ) => {
522
+ const o = new ParseObject ( 'Person' ) ;
523
+ o . _finishFetch ( {
524
+ objectId : 'setNested2_1450' ,
525
+ objectField : {
526
+ number : 5 ,
527
+ letter : 'a' ,
528
+ } ,
529
+ } ) ;
530
+
531
+ expect ( o . attributes ) . toEqual ( {
532
+ objectField : { number : 5 , letter : 'a' } ,
533
+ } ) ;
534
+ o . set ( 'objectField.number' , 20 ) ;
535
+ o . set ( 'objectField.letter' , 'b' ) ;
536
+
537
+ expect ( o . attributes ) . toEqual ( {
538
+ objectField : { number : 20 , letter : 'b' } ,
539
+ } ) ;
540
+ expect ( o . op ( 'objectField.number' ) instanceof SetOp ) . toBe ( true ) ;
541
+ expect ( o . dirtyKeys ( ) ) . toEqual ( [ 'objectField.number' , 'objectField.letter' , 'objectField' ] ) ;
542
+ expect ( o . _getSaveJSON ( ) ) . toEqual ( {
543
+ 'objectField.number' : 20 ,
544
+ 'objectField.letter' : 'b' ,
545
+ } ) ;
546
+ } ) ;
547
+
522
548
it ( 'can tell if a field is dirty' , ( ) => {
523
549
const o = new ParseObject ( 'Person' ) ;
524
550
o . _finishFetch ( {
0 commit comments