Skip to content

Commit c5ff27f

Browse files
committed
Removed the client config "allowCustomClientId"
Instead, save() does a PUT if the object has a createdAt date, or is assumeCreated()
1 parent 2f94e49 commit c5ff27f

File tree

6 files changed

+153
-199
lines changed

6 files changed

+153
-199
lines changed

integration/test/ParseObjectTest.js

Lines changed: 4 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ describe('Parse Object', () => {
2121
.then(o => {
2222
const o2 = new TestObject({ objectId: o.id });
2323
o2.set('test', 'changed');
24+
o2.assumeCreated();
2425
return o2.save();
2526
})
2627
.then(o => {
@@ -1541,6 +1542,7 @@ describe('Parse Object', () => {
15411542
itemsAgain.forEach((item, i) => {
15421543
const newValue = i * 2;
15431544
item.set('x', newValue);
1545+
item.assumeCreated(); // The objects we get from the array are pointers, which might be dangling, so we assure the SDK that they do indeed exist as actual objects.
15441546
});
15451547
return Parse.Object.saveAll(itemsAgain);
15461548
})
@@ -1696,6 +1698,7 @@ describe('Parse Object', () => {
16961698
const item2Again = itemsAgain[1];
16971699

16981700
// Override item1 in database, this shouldn't fetch
1701+
item1Again.assumeCreated();
16991702
await item1Again.save();
17001703

17011704
const fetchedItems = await Parse.Object.fetchAllIfNeededWithInclude(
@@ -1731,6 +1734,7 @@ describe('Parse Object', () => {
17311734
const itemsAgain = containerAgain.get('items');
17321735
itemsAgain.forEach((item, i) => {
17331736
item.set('x', i * 2);
1737+
item.assumeCreated();
17341738
});
17351739
return Parse.Object.saveAll(itemsAgain);
17361740
})
@@ -2047,44 +2051,34 @@ describe('Parse Object', () => {
20472051
describe('allowCustomObjectId', () => {
20482052
it('can save without setting an objectId', async () => {
20492053
await reconfigureServer({ allowCustomObjectId: true });
2050-
Parse.allowCustomObjectId = true;
20512054

20522055
const object = new Parse.Object('TestObject');
20532056
await object.save();
20542057
expect(object.id).toBeDefined();
2055-
2056-
Parse.allowCustomObjectId = false;
20572058
});
20582059

20592060
it('fails to save when objectId is empty', async () => {
20602061
await reconfigureServer({ allowCustomObjectId: true });
2061-
Parse.allowCustomObjectId = true;
20622062

20632063
const object = new Parse.Object('TestObject');
20642064
object.id = '';
20652065
await expectAsync(object.save()).toBeRejectedWith(
20662066
new Parse.Error(Parse.Error.MISSING_OBJECT_ID, 'objectId must not be empty or null')
20672067
);
2068-
2069-
Parse.allowCustomObjectId = false;
20702068
});
20712069

20722070
it('fails to save when objectId is null', async () => {
20732071
await reconfigureServer({ allowCustomObjectId: true });
2074-
Parse.allowCustomObjectId = true;
20752072

20762073
const object = new Parse.Object('TestObject');
20772074
object.id = null;
20782075
await expectAsync(object.save()).toBeRejectedWith(
20792076
new Parse.Error(Parse.Error.MISSING_OBJECT_ID, 'objectId must not be empty or null')
20802077
);
2081-
2082-
Parse.allowCustomObjectId = false;
20832078
});
20842079

20852080
it('can save with custom objectId', async () => {
20862081
await reconfigureServer({ allowCustomObjectId: true });
2087-
Parse.allowCustomObjectId = true;
20882082

20892083
const customId = `${Date.now()}`;
20902084
const object = new Parse.Object('TestObject');
@@ -2103,28 +2097,22 @@ describe('Parse Object', () => {
21032097

21042098
const afterSave = await query.get(customId);
21052099
expect(afterSave.get('foo')).toBe('baz');
2106-
2107-
Parse.allowCustomObjectId = false;
21082100
});
21092101
});
21102102

21112103
describe('allowCustomObjectId saveAll', () => {
21122104
it('can save without setting an objectId', async () => {
21132105
await reconfigureServer({ allowCustomObjectId: true });
2114-
Parse.allowCustomObjectId = true;
21152106

21162107
const obj1 = new TestObject({ foo: 'bar' });
21172108
const obj2 = new TestObject({ foo: 'baz' });
21182109
await Parse.Object.saveAll([obj1, obj2]);
21192110
expect(obj1.id).toBeDefined();
21202111
expect(obj2.id).toBeDefined();
2121-
2122-
Parse.allowCustomObjectId = false;
21232112
});
21242113

21252114
it('fails to save when objectId is empty', async () => {
21262115
await reconfigureServer({ allowCustomObjectId: true });
2127-
Parse.allowCustomObjectId = true;
21282116

21292117
const obj1 = new TestObject({ foo: 'bar' });
21302118
obj1.id = '';
@@ -2133,13 +2121,10 @@ describe('Parse Object', () => {
21332121
await expectAsync(Parse.Object.saveAll([obj1, obj2])).toBeRejectedWith(
21342122
new Parse.Error(Parse.Error.MISSING_OBJECT_ID, 'objectId must not be empty or null')
21352123
);
2136-
2137-
Parse.allowCustomObjectId = false;
21382124
});
21392125

21402126
it('fails to save when objectId is null', async () => {
21412127
await reconfigureServer({ allowCustomObjectId: true });
2142-
Parse.allowCustomObjectId = true;
21432128

21442129
const obj1 = new TestObject({ foo: 'bar' });
21452130
obj1.id = null;
@@ -2148,13 +2133,10 @@ describe('Parse Object', () => {
21482133
await expectAsync(Parse.Object.saveAll([obj1, obj2])).toBeRejectedWith(
21492134
new Parse.Error(Parse.Error.MISSING_OBJECT_ID, 'objectId must not be empty or null')
21502135
);
2151-
2152-
Parse.allowCustomObjectId = false;
21532136
});
21542137

21552138
it('can save with custom objectId', async () => {
21562139
await reconfigureServer({ allowCustomObjectId: true });
2157-
Parse.allowCustomObjectId = true;
21582140

21592141
const obj1 = new TestObject({ foo: 'bar' });
21602142
const customId1 = `${Date.now()}`;
@@ -2171,8 +2153,6 @@ describe('Parse Object', () => {
21712153
results.forEach(result => {
21722154
expect([customId1, customId2].includes(result.id));
21732155
});
2174-
2175-
Parse.allowCustomObjectId = false;
21762156
});
21772157
});
21782158
});

src/CoreManager.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,6 @@ const config: Config & { [key: string]: mixed } = {
193193
FORCE_REVOCABLE_SESSION: false,
194194
ENCRYPTED_USER: false,
195195
IDEMPOTENCY: false,
196-
ALLOW_CUSTOM_OBJECT_ID: false,
197196
PARSE_ERRORS: [],
198197
};
199198

0 commit comments

Comments
 (0)