Skip to content

Commit e9b6ec7

Browse files
Adding a test to demonstrate #1238 (save call on object with beforeSave trigger removes the data of pointer fields).
1 parent 9bad879 commit e9b6ec7

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

spec/CloudCode.spec.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -467,4 +467,36 @@ describe('Cloud Code', () => {
467467
done();
468468
});
469469
});
470+
471+
it('trivial beforeSave should not affect fetched pointers', function(done) {
472+
Parse.Cloud.beforeSave('BeforeSaveUnchanged', function(req, res) {
473+
res.success();
474+
});
475+
476+
var TestObject = Parse.Object.extend("TestObject");
477+
var NoBeforeSaveObject = Parse.Object.extend("NoBeforeSave");
478+
var BeforeSaveObject = Parse.Object.extend("BeforeSaveUnchanged");
479+
480+
var aTestObject = new TestObject();
481+
aTestObject.set("foo", "bar");
482+
aTestObject.save()
483+
.then(function(aTestObject) {
484+
var aNoBeforeSaveObj = new NoBeforeSaveObject();
485+
aNoBeforeSaveObj.set("aTestObject", aTestObject);
486+
expect(aNoBeforeSaveObj.get("aTestObject").get("foo")).toEqual("bar");
487+
return aNoBeforeSaveObj.save();
488+
})
489+
.then(function(aNoBeforeSaveObj) {
490+
expect(aNoBeforeSaveObj.get("aTestObject").get("foo")).toEqual("bar");
491+
492+
var aBeforeSaveObj = new BeforeSaveObject();
493+
aBeforeSaveObj.set("aTestObject", aTestObject);
494+
expect(aBeforeSaveObj.get("aTestObject").get("foo")).toEqual("bar");
495+
return aBeforeSaveObj.save();
496+
})
497+
.then(function(aBeforeSaveObj) {
498+
expect(aBeforeSaveObj.get("aTestObject").get("foo")).toEqual("bar");
499+
done();
500+
});
501+
});
470502
});

0 commit comments

Comments
 (0)