File tree Expand file tree Collapse file tree 2 files changed +30
-1
lines changed Expand file tree Collapse file tree 2 files changed +30
-1
lines changed Original file line number Diff line number Diff line change @@ -722,4 +722,33 @@ describe('Cloud Code', () => {
722
722
done ( ) ;
723
723
} ) ;
724
724
} ) ;
725
+
726
+ it ( 'should fully delete objects when using `unset` with beforeSave (regression test for #1840)' , done => {
727
+ var TestObject = Parse . Object . extend ( 'TestObject' ) ;
728
+ var BeforeSaveObject = Parse . Object . extend ( 'BeforeSaveChanged' ) ;
729
+
730
+ Parse . Cloud . beforeSave ( 'BeforeSaveChanged' , ( req , res ) => {
731
+ var object = req . object ;
732
+ object . set ( 'before' , 'save' ) ;
733
+ object . unset ( 'remove' ) ;
734
+ res . success ( ) ;
735
+ } ) ;
736
+
737
+ let object ;
738
+ let testObject = new TestObject ( { key : 'value' } ) ;
739
+ testObject . save ( ) . then ( ( ) => {
740
+ object = new BeforeSaveObject ( ) ;
741
+ return object . save ( ) . then ( ( ) => {
742
+ object . set ( { remove :testObject } )
743
+ return object . save ( ) ;
744
+ } ) ;
745
+ } ) . then ( ( objectAgain ) => {
746
+ expect ( objectAgain . get ( 'remove' ) ) . toBeUndefined ( ) ;
747
+ expect ( object . get ( 'remove' ) ) . toBeUndefined ( ) ;
748
+ done ( ) ;
749
+ } ) . fail ( ( err ) => {
750
+ console . error ( err ) ;
751
+ done ( ) ;
752
+ } )
753
+ } ) ;
725
754
} ) ;
Original file line number Diff line number Diff line change @@ -888,7 +888,7 @@ function updateResponseWithData(response, data) {
888
888
let dataValue = data [ fieldName ] ;
889
889
let responseValue = response [ fieldName ] ;
890
890
if ( dataValue && dataValue . __op === 'Delete' ) {
891
- delete response [ fieldName ] ;
891
+ response [ fieldName ] = undefined ;
892
892
} else {
893
893
response [ fieldName ] = responseValue || dataValue ;
894
894
}
You can’t perform that action at this time.
0 commit comments