Make beforeSave work when object is passed to success (#1937)

This commit is contained in:
Madhav Bhagat
2016-05-28 21:51:22 +05:30
committed by Florent Vilmart
parent 1c162101be
commit 181b12771d
2 changed files with 23 additions and 1 deletions

View File

@@ -258,6 +258,27 @@ describe('miscellaneous', function() {
done();
});
});
it('works when object is passed to success', done => {
let triggerTime = 0;
// Register a mock beforeSave hook
Parse.Cloud.beforeSave('GameScore', (req, res) => {
let object = req.object;
object.set('foo', 'bar');
triggerTime++;
res.success(object);
});
let obj = new Parse.Object('GameScore');
obj.set('foo', 'baz');
obj.save().then(() => {
expect(triggerTime).toBe(1);
expect(obj.get('foo')).toEqual('bar');
done();
}, error => {
fail(error);
done();
});
});
it('original object is set on update', done => {
let triggerTime = 0;

View File

@@ -131,7 +131,8 @@ export function getResponseObject(request, resolve, reject) {
return {
success: function(response) {
// Use the JSON response
if (response && request.triggerName === Types.beforeSave) {
if (response && !request.object.equals(response)
&& request.triggerName === Types.beforeSave) {
return resolve(response);
}
response = {};