Skip to content

Commit 7224cde

Browse files
authored
fix: Pass customObjectId in beforeSave (#7167)
* beforeSave custom object id fix * Added regression test case for issue #6733
1 parent 72cf31a commit 7224cde

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

Diff for: spec/CloudCode.spec.js

+33
Original file line numberDiff line numberDiff line change
@@ -1779,6 +1779,39 @@ describe('beforeSave hooks', () => {
17791779
const myObject = new MyObject();
17801780
myObject.save().then(() => done());
17811781
});
1782+
1783+
it('should respect custom object ids (#6733)', async () => {
1784+
Parse.Cloud.beforeSave('TestObject', req => {
1785+
expect(req.object.id).toEqual('test_6733');
1786+
});
1787+
1788+
await reconfigureServer({ allowCustomObjectId: true });
1789+
1790+
const req = request({
1791+
// Parse JS SDK does not currently support custom object ids (see #1097), so we do a REST request
1792+
method: 'POST',
1793+
url: 'http://localhost:8378/1/classes/TestObject',
1794+
headers: {
1795+
'X-Parse-Application-Id': 'test',
1796+
'X-Parse-REST-API-Key': 'rest',
1797+
},
1798+
body: {
1799+
objectId: 'test_6733',
1800+
foo: 'bar',
1801+
},
1802+
});
1803+
1804+
{
1805+
const res = await req;
1806+
expect(res.data.objectId).toEqual('test_6733');
1807+
}
1808+
1809+
const query = new Parse.Query('TestObject');
1810+
query.equalTo('objectId', 'test_6733');
1811+
const res = await query.find();
1812+
expect(res.length).toEqual(1);
1813+
expect(res[0].get('foo')).toEqual('bar');
1814+
});
17821815
});
17831816

17841817
describe('afterSave hooks', () => {

Diff for: src/triggers.js

+1
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,7 @@ export function getResponseObject(request, resolve, reject) {
327327
response = {};
328328
if (request.triggerName === Types.beforeSave) {
329329
response['object'] = request.object._getSaveJSON();
330+
response['object']['objectId'] = request.object.id;
330331
}
331332
return resolve(response);
332333
},

0 commit comments

Comments
 (0)