Skip to content

Commit 181b127

Browse files
codebreachflovilmart
authored andcommitted
Make beforeSave work when object is passed to success (#1937)
1 parent 1c16210 commit 181b127

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

spec/ParseAPI.spec.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,27 @@ describe('miscellaneous', function() {
258258
done();
259259
});
260260
});
261+
it('works when object is passed to success', done => {
262+
let triggerTime = 0;
263+
// Register a mock beforeSave hook
264+
Parse.Cloud.beforeSave('GameScore', (req, res) => {
265+
let object = req.object;
266+
object.set('foo', 'bar');
267+
triggerTime++;
268+
res.success(object);
269+
});
270+
271+
let obj = new Parse.Object('GameScore');
272+
obj.set('foo', 'baz');
273+
obj.save().then(() => {
274+
expect(triggerTime).toBe(1);
275+
expect(obj.get('foo')).toEqual('bar');
276+
done();
277+
}, error => {
278+
fail(error);
279+
done();
280+
});
281+
});
261282

262283
it('original object is set on update', done => {
263284
let triggerTime = 0;

src/triggers.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,8 @@ export function getResponseObject(request, resolve, reject) {
131131
return {
132132
success: function(response) {
133133
// Use the JSON response
134-
if (response && request.triggerName === Types.beforeSave) {
134+
if (response && !request.object.equals(response)
135+
&& request.triggerName === Types.beforeSave) {
135136
return resolve(response);
136137
}
137138
response = {};

0 commit comments

Comments
 (0)