@@ -696,26 +696,51 @@ describe('miscellaneous', function () {
696
696
Parse . Cloud . afterSave ( 'GameScore' , function ( req ) {
697
697
const object = req . object ;
698
698
expect ( object instanceof Parse . Object ) . toBeTruthy ( ) ;
699
- if ( triggerTime == 0 ) {
699
+ triggerTime ++ ;
700
+ if ( triggerTime == 1 ) {
700
701
// Create
701
- expect ( object . get ( 'a' ) ) . toEqual ( { b : { c : 0 } , d : 0 } ) ;
702
- } else if ( triggerTime == 1 ) {
703
- // Update
704
- expect ( object . get ( 'a' ) ) . toEqual ( { b : { c : 1 } , d : 2 } ) ;
702
+ expect ( object . get ( 'a' ) ) . toEqual ( { b : 0 , c : { d : 1 } } ) ;
703
+ expect ( object . get ( 'e' ) ) . toEqual ( 2 ) ;
704
+ } else if ( triggerTime == 2 ) {
705
+ // Update, increment
706
+ expect ( object . get ( 'a' ) ) . toEqual ( { b : 10 , c : { d : 12 } } ) ;
707
+ expect ( object . get ( 'e' ) ) . toEqual ( 14 ) ;
708
+ } else if ( triggerTime == 3 ) {
709
+ // Update, set
710
+ expect ( object . get ( 'a' ) ) . toEqual ( { b : 100 , c : { d : 200 } } ) ;
711
+ expect ( object . get ( 'e' ) ) . toEqual ( 300 ) ;
712
+ } else if ( triggerTime == 4 ) {
713
+ // Update, unset on a.c.d
714
+ console . log ( JSON . serialize ( object . get ( 'a' ) ) ) ;
715
+ expect ( object . get ( 'a' ) ) . toEqual ( { b : 100 , c : { } } ) ;
716
+ expect ( object . get ( 'e' ) ) . toEqual ( 300 ) ;
717
+ } else if ( triggerTime == 5 ) {
718
+ // Update, unset on a.b
719
+ expect ( object . get ( 'a' ) ) . toEqual ( { c : { } } ) ;
720
+ expect ( object . get ( 'e' ) ) . toEqual ( 300 ) ;
705
721
} else {
706
722
throw new Error ( ) ;
707
723
}
708
- triggerTime ++ ;
709
724
} ) ;
710
725
711
726
const obj = new Parse . Object ( 'GameScore' ) ;
712
- obj . set ( 'a' , { b : { c : 0 } , d : 0 } ) ;
727
+ obj . set ( 'a' , { b : 0 , c : { d : 1 } } ) ;
728
+ obj . set ( 'e' , 2 ) ;
729
+ await obj . save ( ) ;
730
+ obj . increment ( 'a.b' , 10 ) ;
731
+ obj . increment ( 'a.c.d' , 11 ) ;
732
+ obj . increment ( 'e' , 12 ) ;
733
+ await obj . save ( ) ;
734
+ obj . set ( 'a.b' , 100 ) ;
735
+ obj . set ( 'a.c.d' , 200 ) ;
736
+ obj . set ( 'e' , 300 ) ;
737
+ await obj . save ( ) ;
738
+ obj . unset ( 'a.c.d' ) ;
713
739
await obj . save ( ) ;
714
- obj . set ( 'a.b.c' , 1 ) ;
715
- obj . set ( 'a.d' , 2 ) ;
740
+ obj . unset ( 'a.b' ) ;
716
741
await obj . save ( ) ;
717
742
// Make sure the checking has been triggered
718
- expect ( triggerTime ) . toBe ( 2 ) ;
743
+ expect ( triggerTime ) . toBe ( 5 ) ;
719
744
} ) ;
720
745
721
746
it ( 'test afterSave get original object on update' , function ( done ) {
0 commit comments