@@ -643,6 +643,7 @@ describe('miscellaneous', function() {
643
643
it ( 'test afterSave get original object on update' , function ( done ) {
644
644
var triggerTime = 0 ;
645
645
// Register a mock beforeSave hook
646
+
646
647
Parse . Cloud . afterSave ( 'GameScore' , function ( req , res ) {
647
648
var object = req . object ;
648
649
expect ( object instanceof Parse . Object ) . toBeTruthy ( ) ;
@@ -693,6 +694,56 @@ describe('miscellaneous', function() {
693
694
} ) ;
694
695
} ) ;
695
696
697
+ it ( 'test afterSave get full original object even req auth can not query it' , ( done ) => {
698
+ var triggerTime = 0 ;
699
+ // Register a mock beforeSave hook
700
+ Parse . Cloud . afterSave ( 'GameScore' , function ( req , res ) {
701
+ var object = req . object ;
702
+ var originalObject = req . original ;
703
+ if ( triggerTime == 0 ) {
704
+ // Create
705
+ } else if ( triggerTime == 1 ) {
706
+ // Update
707
+ expect ( object . get ( 'foo' ) ) . toEqual ( 'baz' ) ;
708
+ // Make sure we get the full originalObject
709
+ expect ( originalObject instanceof Parse . Object ) . toBeTruthy ( ) ;
710
+ expect ( originalObject . get ( 'fooAgain' ) ) . toEqual ( 'barAgain' ) ;
711
+ expect ( originalObject . id ) . not . toBeUndefined ( ) ;
712
+ expect ( originalObject . createdAt ) . not . toBeUndefined ( ) ;
713
+ expect ( originalObject . updatedAt ) . not . toBeUndefined ( ) ;
714
+ expect ( originalObject . get ( 'foo' ) ) . toEqual ( 'bar' ) ;
715
+ } else {
716
+ res . error ( ) ;
717
+ }
718
+ triggerTime ++ ;
719
+ res . success ( ) ;
720
+ } ) ;
721
+
722
+ var obj = new Parse . Object ( 'GameScore' ) ;
723
+ obj . set ( 'foo' , 'bar' ) ;
724
+ obj . set ( 'fooAgain' , 'barAgain' ) ;
725
+ var acl = new Parse . ACL ( ) ;
726
+ // Make sure our update request can not query the object
727
+ acl . setPublicReadAccess ( false ) ;
728
+ acl . setPublicWriteAccess ( true ) ;
729
+ obj . setACL ( acl ) ;
730
+ obj . save ( ) . then ( function ( ) {
731
+ // We only update foo
732
+ obj . set ( 'foo' , 'baz' ) ;
733
+ return obj . save ( ) ;
734
+ } ) . then ( function ( ) {
735
+ // Make sure the checking has been triggered
736
+ expect ( triggerTime ) . toBe ( 2 ) ;
737
+ // Clear mock afterSave
738
+ Parse . Cloud . _removeHook ( "Triggers" , "afterSave" , "GameScore" ) ;
739
+ done ( ) ;
740
+ } , function ( error ) {
741
+ console . error ( error ) ;
742
+ fail ( error ) ;
743
+ done ( ) ;
744
+ } ) ;
745
+ } ) ;
746
+
696
747
it ( 'afterSave flattens custom operations' , done => {
697
748
var triggerTime = 0 ;
698
749
// Register a mock beforeSave hook
0 commit comments