Skip to content

Commit 24c2a1c

Browse files
committed
Rename Migration/Schemas to Schema/Definitions
1 parent a5eace1 commit 24c2a1c

File tree

7 files changed

+98
-96
lines changed

7 files changed

+98
-96
lines changed

spec/DefinedSchemas.spec.js

Lines changed: 83 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ describe('DefinedSchemas', () => {
2626
it('should keep default fields if not provided', async () => {
2727
const server = await reconfigureServer();
2828
// Will perform create
29-
await new DefinedSchemas({ schemas: [{ className: 'Test' }] }, server.config).execute();
29+
await new DefinedSchemas({ definitions: [{ className: 'Test' }] }, server.config).execute();
3030
let schema = await new Parse.Schema('Test').get();
3131
const expectedFields = {
3232
objectId: { type: 'String' },
@@ -38,15 +38,15 @@ describe('DefinedSchemas', () => {
3838

3939
await server.config.schemaCache.clear();
4040
// Will perform update
41-
await new DefinedSchemas({ schemas: [{ className: 'Test' }] }, server.config).execute();
41+
await new DefinedSchemas({ definitions: [{ className: 'Test' }] }, server.config).execute();
4242
schema = await new Parse.Schema('Test').get();
4343
expect(schema.fields).toEqual(expectedFields);
4444
});
4545
it('should protect default fields', async () => {
4646
const server = await reconfigureServer();
4747

4848
const schemas = {
49-
schemas: [
49+
definitions: [
5050
{
5151
className: '_User',
5252
fields: {
@@ -178,7 +178,7 @@ describe('DefinedSchemas', () => {
178178
aObject: { type: 'Object' },
179179
};
180180
const schemas = {
181-
schemas: [
181+
definitions: [
182182
{
183183
className: 'Test',
184184
fields,
@@ -201,14 +201,14 @@ describe('DefinedSchemas', () => {
201201
const server = await reconfigureServer();
202202

203203
await new DefinedSchemas(
204-
{ schemas: [{ className: 'Test', fields: { aField: { type: 'String' } } }] },
204+
{ definitions: [{ className: 'Test', fields: { aField: { type: 'String' } } }] },
205205
server.config
206206
).execute();
207207

208208
let schema = await new Parse.Schema('Test').get();
209209
expect(schema.fields.aField).toBeDefined();
210210

211-
await new DefinedSchemas({ schemas: [{ className: 'Test' }] }, server.config).execute();
211+
await new DefinedSchemas({ definitions: [{ className: 'Test' }] }, server.config).execute();
212212

213213
schema = await new Parse.Schema('Test').get();
214214
expect(schema.fields).toEqual({
@@ -224,7 +224,7 @@ describe('DefinedSchemas', () => {
224224

225225
await new DefinedSchemas(
226226
{
227-
schemas: [{ className: 'Test', fields: { aField: { type: 'String' } } }],
227+
definitions: [{ className: 'Test', fields: { aField: { type: 'String' } } }],
228228
},
229229
server.config
230230
).execute();
@@ -233,7 +233,7 @@ describe('DefinedSchemas', () => {
233233
expect(schema.fields.aField).toBeDefined();
234234

235235
await new DefinedSchemas(
236-
{ deleteExtraFields: true, schemas: [{ className: 'Test' }] },
236+
{ deleteExtraFields: true, definitions: [{ className: 'Test' }] },
237237
server.config
238238
).execute();
239239

@@ -249,7 +249,7 @@ describe('DefinedSchemas', () => {
249249
const server = await reconfigureServer();
250250

251251
await new DefinedSchemas(
252-
{ schemas: [{ className: 'Test', fields: { aField: { type: 'String' } } }] },
252+
{ definitions: [{ className: 'Test', fields: { aField: { type: 'String' } } }] },
253253
server.config
254254
).execute();
255255

@@ -262,7 +262,7 @@ describe('DefinedSchemas', () => {
262262
await new DefinedSchemas(
263263
{
264264
recreateModifiedFields: true,
265-
schemas: [{ className: 'Test', fields: { aField: { type: 'Number' } } }],
265+
definitions: [{ className: 'Test', fields: { aField: { type: 'Number' } } }],
266266
},
267267
server.config
268268
).execute();
@@ -277,7 +277,7 @@ describe('DefinedSchemas', () => {
277277
const server = await reconfigureServer();
278278

279279
await new DefinedSchemas(
280-
{ schemas: [{ className: 'Test', fields: { aField: { type: 'String' } } }] },
280+
{ definitions: [{ className: 'Test', fields: { aField: { type: 'String' } } }] },
281281
server.config
282282
).execute();
283283

@@ -288,7 +288,7 @@ describe('DefinedSchemas', () => {
288288
await object.save({ aField: 'Hello' }, { useMasterKey: true });
289289

290290
await new DefinedSchemas(
291-
{ schemas: [{ className: 'Test', fields: { aField: { type: 'Number' } } }] },
291+
{ definitions: [{ className: 'Test', fields: { aField: { type: 'Number' } } }] },
292292
server.config
293293
).execute();
294294

@@ -302,7 +302,7 @@ describe('DefinedSchemas', () => {
302302
const server = await reconfigureServer();
303303

304304
await new DefinedSchemas(
305-
{ schemas: [{ className: 'Test', fields: { aField: { type: 'String' } } }] },
305+
{ definitions: [{ className: 'Test', fields: { aField: { type: 'String' } } }] },
306306
server.config
307307
).execute();
308308

@@ -314,7 +314,9 @@ describe('DefinedSchemas', () => {
314314

315315
await new DefinedSchemas(
316316
{
317-
schemas: [{ className: 'Test', fields: { aField: { type: 'String', required: true } } }],
317+
definitions: [
318+
{ className: 'Test', fields: { aField: { type: 'String', required: true } } },
319+
],
318320
},
319321
server.config
320322
).execute();
@@ -334,7 +336,7 @@ describe('DefinedSchemas', () => {
334336
const indexes = { complex: { createdAt: 1, updatedAt: 1 } };
335337

336338
const schemas = {
337-
schemas: [{ className: 'Test', fields: { aField: { type: 'String' } }, indexes }],
339+
definitions: [{ className: 'Test', fields: { aField: { type: 'String' } }, indexes }],
338340
};
339341
await new DefinedSchemas(schemas, server.config).execute();
340342

@@ -353,11 +355,11 @@ describe('DefinedSchemas', () => {
353355

354356
let indexes = { complex: { createdAt: 1, updatedAt: 1 } };
355357

356-
let schemas = { schemas: [{ className: 'Test', indexes }] };
358+
let schemas = { definitions: [{ className: 'Test', indexes }] };
357359
await new DefinedSchemas(schemas, server.config).execute();
358360

359361
indexes = { complex: { createdAt: 1 } };
360-
schemas = { schemas: [{ className: 'Test', indexes }] };
362+
schemas = { definitions: [{ className: 'Test', indexes }] };
361363

362364
// Change indexes
363365
await new DefinedSchemas(schemas, server.config).execute();
@@ -377,11 +379,11 @@ describe('DefinedSchemas', () => {
377379

378380
let indexes = { complex: { createdAt: 1, updatedAt: 1 } };
379381

380-
let schemas = { schemas: [{ className: 'Test', indexes }] };
382+
let schemas = { definitions: [{ className: 'Test', indexes }] };
381383
await new DefinedSchemas(schemas, server.config).execute();
382384

383385
indexes = {};
384-
schemas = { schemas: [{ className: 'Test', indexes }] };
386+
schemas = { definitions: [{ className: 'Test', indexes }] };
385387
// Change indexes
386388
await new DefinedSchemas(schemas, server.config).execute();
387389
let schema = await new Parse.Schema('Test').get();
@@ -394,51 +396,51 @@ describe('DefinedSchemas', () => {
394396
cleanUpIndexes(schema);
395397
expect(schema.indexes).toBeUndefined();
396398
});
397-
xit('should keep protected indexes', async () => {
398-
const server = await reconfigureServer();
399-
400-
const expectedIndexes = {
401-
username_1: { username: 1 },
402-
case_insensitive_username: { username: 1 },
403-
email_1: { email: 1 },
404-
case_insensitive_email: { email: 1 },
405-
};
406-
const schemas = {
407-
schemas: [
408-
{
409-
className: '_User',
410-
indexes: {
411-
case_insensitive_username: { password: true },
412-
case_insensitive_email: { password: true },
413-
},
414-
},
415-
{ className: 'Test' },
416-
],
417-
};
418-
// Create
419-
await new DefinedSchemas(schemas, server.config).execute();
420-
let userSchema = await new Parse.Schema('_User').get();
421-
let testSchema = await new Parse.Schema('Test').get();
422-
cleanUpIndexes(userSchema);
423-
cleanUpIndexes(testSchema);
424-
expect(testSchema.indexes).toBeUndefined();
425-
expect(userSchema.indexes).toEqual(expectedIndexes);
426-
427-
// Update
428-
await new DefinedSchemas(schemas, server.config).execute();
429-
userSchema = await new Parse.Schema('_User').get();
430-
testSchema = await new Parse.Schema('Test').get();
431-
cleanUpIndexes(userSchema);
432-
cleanUpIndexes(testSchema);
433-
expect(testSchema.indexes).toBeUndefined();
434-
expect(userSchema.indexes).toEqual(expectedIndexes);
435-
});
399+
// xit('should keep protected indexes', async () => {
400+
// const server = await reconfigureServer();
401+
//
402+
// const expectedIndexes = {
403+
// username_1: { username: 1 },
404+
// case_insensitive_username: { username: 1 },
405+
// email_1: { email: 1 },
406+
// case_insensitive_email: { email: 1 },
407+
// };
408+
// const schemas = {
409+
// definitions: [
410+
// {
411+
// className: '_User',
412+
// indexes: {
413+
// case_insensitive_username: { password: true },
414+
// case_insensitive_email: { password: true },
415+
// },
416+
// },
417+
// { className: 'Test' },
418+
// ],
419+
// };
420+
// Create
421+
// await new DefinedSchemas(schemas, server.config).execute();
422+
// let userSchema = await new Parse.Schema('_User').get();
423+
// let testSchema = await new Parse.Schema('Test').get();
424+
// cleanUpIndexes(userSchema);
425+
// cleanUpIndexes(testSchema);
426+
// expect(testSchema.indexes).toBeUndefined();
427+
// expect(userSchema.indexes).toEqual(expectedIndexes);
428+
//
429+
// Update
430+
// await new DefinedSchemas(schemas, server.config).execute();
431+
// userSchema = await new Parse.Schema('_User').get();
432+
// testSchema = await new Parse.Schema('Test').get();
433+
// cleanUpIndexes(userSchema);
434+
// cleanUpIndexes(testSchema);
435+
// expect(testSchema.indexes).toBeUndefined();
436+
// expect(userSchema.indexes).toEqual(expectedIndexes);
437+
// });
436438
});
437439

438440
describe('ClassLevelPermissions', () => {
439441
it('should use default CLP', async () => {
440442
const server = await reconfigureServer();
441-
const schemas = { schemas: [{ className: 'Test' }] };
443+
const schemas = { definitions: [{ className: 'Test' }] };
442444
await new DefinedSchemas(schemas, server.config).execute();
443445

444446
const expectedTestCLP = {
@@ -472,7 +474,7 @@ describe('DefinedSchemas', () => {
472474
protectedFields: { '*': ['aField'], 'role:Admin': ['anotherField'] },
473475
};
474476
const schemas = {
475-
schemas: [
477+
definitions: [
476478
{
477479
className: 'Test',
478480
fields: { aField: { type: 'String' }, anotherField: { type: 'Object' } },
@@ -495,7 +497,7 @@ describe('DefinedSchemas', () => {
495497
it('should force addField to empty', async () => {
496498
const server = await reconfigureServer();
497499
const schemas = {
498-
schemas: [{ className: 'Test', classLevelPermissions: { addField: { '*': true } } }],
500+
definitions: [{ className: 'Test', classLevelPermissions: { addField: { '*': true } } }],
499501
};
500502
await new DefinedSchemas(schemas, server.config).execute();
501503

@@ -521,20 +523,20 @@ describe('DefinedSchemas', () => {
521523

522524
it('should not delete automatically classes', async () => {
523525
await reconfigureServer({
524-
migrations: { schemas: [{ className: '_User' }, { className: 'Test' }] },
526+
schema: { definitions: [{ className: '_User' }, { className: 'Test' }] },
525527
});
526528

527-
await reconfigureServer({ migrations: { schemas: [{ className: '_User' }] } });
529+
await reconfigureServer({ schema: { definitions: [{ className: '_User' }] } });
528530

529531
const schema = await new Parse.Schema('Test').get();
530532
expect(schema.className).toEqual('Test');
531533
});
532534

533535
it('should disable class PUT/POST endpoint when lockSchemas provided to avoid dual source of truth', async () => {
534536
await reconfigureServer({
535-
migrations: {
537+
schema: {
536538
lockSchemas: true,
537-
schemas: [{ className: '_User' }, { className: 'Test' }],
539+
definitions: [{ className: '_User' }, { className: 'Test' }],
538540
},
539541
});
540542

@@ -560,9 +562,9 @@ describe('DefinedSchemas', () => {
560562
});
561563
it('should only enable delete class endpoint since', async () => {
562564
await reconfigureServer({
563-
migrations: { schemas: [{ className: '_User' }, { className: 'Test' }] },
565+
schema: { definitions: [{ className: '_User' }, { className: 'Test' }] },
564566
});
565-
await reconfigureServer({ migrations: { schemas: [{ className: '_User' }] } });
567+
await reconfigureServer({ schema: { definitions: [{ className: '_User' }] } });
566568

567569
let schemas = await Parse.Schema.all();
568570
expect(schemas.length).toEqual(4);
@@ -571,12 +573,12 @@ describe('DefinedSchemas', () => {
571573
schemas = await Parse.Schema.all();
572574
expect(schemas.length).toEqual(3);
573575
});
574-
it('should run beforeSchemasMigration before execution of DefinedSchemas', async () => {
576+
it('should run beforeSchemaMigration before execution of DefinedSchemas', async () => {
575577
let before = false;
576578
const server = await reconfigureServer({
577-
migrations: {
578-
schemas: [{ className: '_User' }, { className: 'Test' }],
579-
beforeSchemasMigration: async () => {
579+
schema: {
580+
definitions: [{ className: '_User' }, { className: 'Test' }],
581+
beforeSchemaMigration: async () => {
580582
expect(before).toEqual(false);
581583
before = true;
582584
},
@@ -587,7 +589,7 @@ describe('DefinedSchemas', () => {
587589
expect(server).toBeDefined();
588590
});
589591
it('should use logger in case of error', async () => {
590-
const server = await reconfigureServer({ migrations: { schemas: [{ className: '_User' }] } });
592+
const server = await reconfigureServer({ schema: { definitions: [{ className: '_User' }] } });
591593
const error = new Error('A test error');
592594
const logger = require('../lib/logger').logger;
593595
spyOn(DefinedSchemas.prototype, 'wait').and.resolveTo();
@@ -597,7 +599,7 @@ describe('DefinedSchemas', () => {
597599
});
598600

599601
await new DefinedSchemas(
600-
{ schemas: [{ className: 'Test', fields: { aField: { type: 'String' } } }] },
602+
{ definitions: [{ className: 'Test', fields: { aField: { type: 'String' } } }] },
601603
server.config
602604
).execute();
603605

@@ -607,8 +609,8 @@ describe('DefinedSchemas', () => {
607609
const server = await reconfigureServer();
608610
const logger = require('../lib/logger').logger;
609611
spyOn(logger, 'error').and.callThrough();
610-
const schema = {
611-
schemas: [
612+
const migrationOptions = {
613+
definitions: [
612614
{
613615
className: 'Test',
614616
fields: { aField: { type: 'String' } },
@@ -622,15 +624,15 @@ describe('DefinedSchemas', () => {
622624

623625
// Simulate parallel deployment
624626
await Promise.all([
625-
new DefinedSchemas(schema, server.config).execute(),
626-
new DefinedSchemas(schema, server.config).execute(),
627-
new DefinedSchemas(schema, server.config).execute(),
628-
new DefinedSchemas(schema, server.config).execute(),
629-
new DefinedSchemas(schema, server.config).execute(),
627+
new DefinedSchemas(migrationOptions, server.config).execute(),
628+
new DefinedSchemas(migrationOptions, server.config).execute(),
629+
new DefinedSchemas(migrationOptions, server.config).execute(),
630+
new DefinedSchemas(migrationOptions, server.config).execute(),
631+
new DefinedSchemas(migrationOptions, server.config).execute(),
630632
]);
631633

632634
const testSchema = (await Parse.Schema.all()).find(
633-
({ className }) => className === schema.className
635+
({ className }) => className === migrationOptions.schema[0].className
634636
);
635637

636638
expect(testSchema.indexes.aField).toEqual({ aField: 1 });

src/Adapters/Storage/Mongo/MongoSchemaCollection.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ class MongoSchemaCollection {
275275
});
276276
}
277277

278-
async updateFieldOptions(className: string, fieldName: string, fieldType: string) {
278+
async updateFieldOptions(className: string, fieldName: string, fieldType: any) {
279279
// eslint-disable-next-line no-unused-vars
280280
const { type, targetClass, ...fieldOptions } = fieldType;
281281
await this.upsertSchema(

src/Options/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ export interface ParseServerOptions {
243243
/* Callback when server has started */
244244
serverStartComplete: ?(error: ?Error) => void;
245245
/* Rest representation on Parse.Schema https://docs.parseplatform.org/rest/guide/#adding-a-schema */
246-
migrations: ?MigrationsOptions;
246+
schema: ?MigrationsOptions;
247247
/* Callback when server has closed */
248248
serverCloseComplete: ?() => void;
249249
/* The security options to identify and report weak security settings.

0 commit comments

Comments
 (0)