Strip read only fields from serialized beforeSave response objects (#1964)
This commit is contained in:
@@ -387,10 +387,10 @@ describe('Hooks', () => {
|
|||||||
Parse.Hooks.createTrigger("SomeRandomObject", "beforeSave" ,hookServerURL+"/BeforeSaveSome").then(function(){
|
Parse.Hooks.createTrigger("SomeRandomObject", "beforeSave" ,hookServerURL+"/BeforeSaveSome").then(function(){
|
||||||
const obj = new Parse.Object("SomeRandomObject");
|
const obj = new Parse.Object("SomeRandomObject");
|
||||||
return obj.save();
|
return obj.save();
|
||||||
}).then(function(res){
|
}).then(function(res) {
|
||||||
expect(triggerCount).toBe(1);
|
expect(triggerCount).toBe(1);
|
||||||
return res.fetch();
|
return res.fetch();
|
||||||
}).then(function(res){
|
}).then(function(res) {
|
||||||
expect(res.get("hello")).toEqual("world");
|
expect(res.get("hello")).toEqual("world");
|
||||||
done();
|
done();
|
||||||
}).fail((err) => {
|
}).fail((err) => {
|
||||||
@@ -400,6 +400,26 @@ describe('Hooks', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("beforeSave hooks should correctly handle responses containing entire object", (done) => {
|
||||||
|
app.post("/BeforeSaveSome2", function(req, res) {
|
||||||
|
var object = Parse.Object.fromJSON(req.body.object);
|
||||||
|
object.set('hello', "world");
|
||||||
|
res.json({success: object});
|
||||||
|
});
|
||||||
|
Parse.Hooks.createTrigger("SomeRandomObject2", "beforeSave" ,hookServerURL+"/BeforeSaveSome2").then(function(){
|
||||||
|
const obj = new Parse.Object("SomeRandomObject2");
|
||||||
|
return obj.save();
|
||||||
|
}).then(function(res) {
|
||||||
|
return res.save();
|
||||||
|
}).then(function(res) {
|
||||||
|
expect(res.get("hello")).toEqual("world");
|
||||||
|
done();
|
||||||
|
}).fail((err) => {
|
||||||
|
fail(`Should not fail: ${JSON.stringify(err)}`);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
it("should run the afterSave hook on the test server", (done) => {
|
it("should run the afterSave hook on the test server", (done) => {
|
||||||
var triggerCount = 0;
|
var triggerCount = 0;
|
||||||
var newObjectId;
|
var newObjectId;
|
||||||
|
|||||||
@@ -205,6 +205,8 @@ function wrapToHTTPRequest(hook, key) {
|
|||||||
if (err) {
|
if (err) {
|
||||||
return res.error(err);
|
return res.error(err);
|
||||||
} else if (hook.triggerName === 'beforeSave') {
|
} else if (hook.triggerName === 'beforeSave') {
|
||||||
|
delete result.createdAt;
|
||||||
|
delete result.updatedAt;
|
||||||
return res.success({object: result});
|
return res.success({object: result});
|
||||||
} else {
|
} else {
|
||||||
return res.success(result);
|
return res.success(result);
|
||||||
|
|||||||
Reference in New Issue
Block a user