Skip to content

Commit 117c091

Browse files
committed
Merge pull request #289 from flovilmart/handle-server-set-delete-op
Adds ability to interpolate delete operations
2 parents ef2b483 + d3ef256 commit 117c091

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

src/ParseObject.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,9 @@ export default class ParseObject {
375375
changes[attr] = new ParseACL(response[attr]);
376376
} else if (attr !== 'objectId') {
377377
changes[attr] = decode(response[attr]);
378+
if (changes[attr] instanceof UnsetOp) {
379+
changes[attr] = undefined;
380+
}
378381
}
379382
}
380383
if (changes.createdAt && !changes.updatedAt) {

src/__tests__/ParseObject-test.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -852,6 +852,21 @@ describe('ParseObject', () => {
852852
done();
853853
});
854854
}));
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+
done();
868+
});
869+
}));
855870

856871
it('can make changes while in the process of a save', asyncHelper((done) => {
857872
var xhr = {

0 commit comments

Comments
 (0)