Skip to content

Commit bf52c3d

Browse files
committed
test parallel
1 parent 3e0145e commit bf52c3d

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

spec/DefinedSchemas.spec.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -523,4 +523,35 @@ describe('DefinedSchemas', () => {
523523
expect(calls[1].args[0]).toEqual(2000);
524524
expect(calls[2].args[0]).toEqual(3000);
525525
});
526+
it('should perform migration in parallel without failing', async () => {
527+
const server = await reconfigureServer();
528+
const logger = require('../lib/logger').logger;
529+
spyOn(logger, 'error').and.callThrough();
530+
const schema = {
531+
className: 'Test',
532+
fields: { aField: { type: 'String' } },
533+
indexes: { aField: { aField: 1 } },
534+
classLevelPermissions: {
535+
create: { requiresAuthentication: true },
536+
},
537+
};
538+
539+
// Simulate parallel deployment
540+
await Promise.all([
541+
new DefinedSchemas([schema], server.config).execute(),
542+
new DefinedSchemas([schema], server.config).execute(),
543+
new DefinedSchemas([schema], server.config).execute(),
544+
new DefinedSchemas([schema], server.config).execute(),
545+
new DefinedSchemas([schema], server.config).execute(),
546+
]);
547+
548+
const testSchema = (await Parse.Schema.all()).find(
549+
({ className }) => className === schema.className
550+
);
551+
552+
expect(testSchema.indexes.aField).toEqual({ aField: 1 });
553+
expect(testSchema.fields.aField).toEqual({ type: 'String' });
554+
expect(testSchema.classLevelPermissions.create).toEqual({ requiresAuthentication: true });
555+
expect(logger.error).toHaveBeenCalledTimes(0);
556+
});
526557
});

0 commit comments

Comments
 (0)