Hi guys,
I often use object.revert in a beforeSave trigger to track masterKey only fields, such as count.
However, when a client attempts to mutate count, using revert removes the key count from the data payload, so the JS SDK thinks that they key count was successfully updated.
This means that the key count appears to be updated, even though it was reverted.
Here’s an example of the functionality:
it('should revert in beforeSave', async () => {
Parse.Cloud.beforeSave('MyObject', ({object}) => {
if (!object.existed()) {
object.set('count', 0);
return object;
}
object.revert('count');
return object;
});
const obj = await new Parse.Object('MyObject').save();
expect(obj.get('count')).toBe(0);
obj.set('count', 10);
await obj.save();
expect(obj.get('count')).toBe(0); // test fails, JS SDK thinks count was successfully updated
await obj.fetch();
expect(obj.get('count')).toBe(0); // test passes
});
My question is; is this a bug in Parse Server or the JS SDK? Or is this expected functionality (cc @Manuel @davimacedo)
Thanks!!