@@ -676,23 +676,55 @@ describe('ParseObject', () => {
676
676
objectField : {
677
677
number : 5 ,
678
678
letter : 'a' ,
679
+ nested : {
680
+ number : 0 ,
681
+ letter : 'b' ,
682
+ } ,
679
683
} ,
680
684
} ) ;
681
685
682
686
expect ( o . attributes ) . toEqual ( {
683
- objectField : { number : 5 , letter : 'a' } ,
687
+ objectField : { number : 5 , letter : 'a' , nested : { number : 0 , letter : 'b' } } ,
684
688
} ) ;
685
689
o . set ( 'objectField.number' , 20 ) ;
686
690
o . set ( 'objectField.letter' , 'b' ) ;
691
+ o . set ( 'objectField.nested.number' , 1 ) ;
692
+ o . set ( 'objectField.nested.letter' , 'c' ) ;
687
693
688
694
expect ( o . attributes ) . toEqual ( {
689
- objectField : { number : 20 , letter : 'b' } ,
695
+ objectField : { number : 20 , letter : 'b' , nested : { number : 1 , letter : 'c' } } ,
690
696
} ) ;
691
697
expect ( o . op ( 'objectField.number' ) instanceof SetOp ) . toBe ( true ) ;
692
- expect ( o . dirtyKeys ( ) ) . toEqual ( [ 'objectField.number' , 'objectField.letter' , 'objectField' ] ) ;
698
+ expect ( o . dirtyKeys ( ) ) . toEqual ( [
699
+ 'objectField.number' ,
700
+ 'objectField.letter' ,
701
+ 'objectField.nested.number' ,
702
+ 'objectField.nested.letter' ,
703
+ 'objectField' ,
704
+ ] ) ;
705
+ expect ( o . _getSaveJSON ( ) ) . toEqual ( {
706
+ 'objectField.number' : 20 ,
707
+ 'objectField.letter' : 'b' ,
708
+ 'objectField.nested.number' : 1 ,
709
+ 'objectField.nested.letter' : 'c' ,
710
+ } ) ;
711
+
712
+ o . revert ( 'objectField.nested.number' ) ;
713
+ o . revert ( 'objectField.nested.letter' ) ;
714
+ expect ( o . _getSaveJSON ( ) ) . toEqual ( {
715
+ 'objectField.number' : 20 ,
716
+ 'objectField.letter' : 'b' ,
717
+ } ) ;
718
+ expect ( o . attributes ) . toEqual ( {
719
+ objectField : { number : 20 , letter : 'b' , nested : { number : 0 , letter : 'b' } } ,
720
+ } ) ;
721
+
722
+ // Also test setting new root fields using the dot notation
723
+ o . set ( 'objectField2.number' , 0 ) ;
693
724
expect ( o . _getSaveJSON ( ) ) . toEqual ( {
694
725
'objectField.number' : 20 ,
695
726
'objectField.letter' : 'b' ,
727
+ 'objectField2.number' : 0 ,
696
728
} ) ;
697
729
} ) ;
698
730
0 commit comments