Skip to content

Commit 39dce71

Browse files
committed
Add a test to validate pointer mutation in beforeSave hooks.
1 parent 7a14695 commit 39dce71

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

spec/ParseAPI.spec.js

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -533,6 +533,48 @@ describe('miscellaneous', function() {
533533
done();
534534
});
535535
});
536+
537+
it('pointer mutation properly saves object', done => {
538+
let className = 'GameScore';
539+
540+
Parse.Cloud.beforeSave(className, (req, res) => {
541+
let object = req.object;
542+
expect(object instanceof Parse.Object).toBeTruthy();
543+
544+
let child = object.get('child');
545+
expect(child instanceof Parse.Object).toBeTruthy();
546+
child.set('a', 'b');
547+
child.save().then(() => {
548+
res.success();
549+
});
550+
});
551+
552+
let obj = new Parse.Object(className);
553+
obj.set('foo', 'bar');
554+
555+
let child = new Parse.Object('Child');
556+
child.save().then(() => {
557+
obj.set('child', child);
558+
return obj.save();
559+
}).then(() => {
560+
let query = new Parse.Query(className);
561+
query.include('child');
562+
return query.get(obj.id).then(objAgain => {
563+
expect(objAgain.get('foo')).toEqual('bar');
564+
565+
let childAgain = objAgain.get('child');
566+
expect(childAgain instanceof Parse.Object).toBeTruthy();
567+
expect(childAgain.get('a')).toEqual('b');
568+
569+
return Promise.resolve();
570+
});
571+
}).then(() => {
572+
done();
573+
}, error => {
574+
fail(error);
575+
done();
576+
});
577+
});
536578
});
537579

538580
it('test afterSave get full object on create and update', function(done) {

0 commit comments

Comments
 (0)