* Fix #5654

* fix tests

* throw error instead
This commit is contained in:
Diamond Lewis
2019-06-11 13:40:34 -05:00
committed by GitHub
parent a58653ada8
commit 7a080478b5
3 changed files with 43 additions and 0 deletions

View File

@@ -2068,4 +2068,19 @@ describe('Parse.Object testing', () => {
done();
});
it('isNew in cloud code', async () => {
Parse.Cloud.beforeSave('CloudCodeIsNew', req => {
expect(req.object.isNew()).toBeTruthy();
expect(req.object.id).toBeUndefined();
});
Parse.Cloud.afterSave('CloudCodeIsNew', req => {
expect(req.object.isNew()).toBeFalsy();
expect(req.object.id).toBeDefined();
});
const object = new Parse.Object('CloudCodeIsNew');
await object.save();
});
});

View File

@@ -446,6 +446,28 @@ describe('rest create', () => {
});
});
it('cannot set id', done => {
const headers = {
'Content-Type': 'application/json',
'X-Parse-Application-Id': 'test',
'X-Parse-REST-API-Key': 'rest',
};
request({
headers: headers,
method: 'POST',
url: 'http://localhost:8378/1/classes/TestObject',
body: JSON.stringify({
foo: 'bar',
id: 'hello',
}),
}).then(fail, response => {
const b = response.data;
expect(b.code).toEqual(105);
expect(b.error).toEqual('id is an invalid field name.');
done();
});
});
it('test default session length', done => {
const user = {
username: 'asdf',

View File

@@ -52,6 +52,12 @@ function RestWrite(
'objectId is an invalid field name.'
);
}
if (!query && data.id) {
throw new Parse.Error(
Parse.Error.INVALID_KEY_NAME,
'id is an invalid field name.'
);
}
// When the operation is complete, this.response may have several
// fields.