File tree Expand file tree Collapse file tree 2 files changed +22
-0
lines changed Expand file tree Collapse file tree 2 files changed +22
-0
lines changed Original file line number Diff line number Diff line change @@ -375,6 +375,9 @@ export default class ParseObject {
375
375
changes [ attr ] = new ParseACL ( response [ attr ] ) ;
376
376
} else if ( attr !== 'objectId' ) {
377
377
changes [ attr ] = decode ( response [ attr ] ) ;
378
+ if ( changes [ attr ] instanceof UnsetOp ) {
379
+ changes [ attr ] = undefined ;
380
+ }
378
381
}
379
382
}
380
383
if ( changes . createdAt && ! changes . updatedAt ) {
Original file line number Diff line number Diff line change @@ -852,6 +852,25 @@ describe('ParseObject', () => {
852
852
done ( ) ;
853
853
} ) ;
854
854
} ) ) ;
855
+
856
+ it ( 'interpolates delete operations' , asyncHelper ( ( done ) => {
857
+ CoreManager . getRESTController ( ) . _setXHR (
858
+ mockXHR ( [ {
859
+ status : 200 ,
860
+ response : { objectId : 'newattributes' , deletedKey : { __op : 'Delete' } }
861
+ } ] )
862
+ ) ;
863
+ var o = new ParseObject ( 'Item' ) ;
864
+ o . save ( { key : 'value' , deletedKey : 'keyToDelete' } ) . then ( ( ) => {
865
+ expect ( o . get ( 'key' ) ) . toBe ( 'value' ) ;
866
+ expect ( o . get ( 'deletedKey' ) ) . toBeUndefined ( ) ;
867
+ o = new ParseObject ( 'Item' ) ;
868
+ return o . save ( { ACL : 'not an acl' } ) ;
869
+ } ) . then ( null , ( error ) => {
870
+ expect ( error . code ) . toBe ( - 1 ) ;
871
+ done ( ) ;
872
+ } ) ;
873
+ } ) ) ;
855
874
856
875
it ( 'can make changes while in the process of a save' , asyncHelper ( ( done ) => {
857
876
var xhr = {
You can’t perform that action at this time.
0 commit comments