diff --git a/packages/seeder/src/Factory.ts b/packages/seeder/src/Factory.ts index bc8c739c7aa4..2c2900b89924 100644 --- a/packages/seeder/src/Factory.ts +++ b/packages/seeder/src/Factory.ts @@ -11,11 +11,15 @@ export abstract class Factory { protected abstract definition(faker: Faker): EntityData; - private makeEntity(overrideParameters?: EntityData): T { + /** + * Make a single entity instance, without persisting it. + * @param overrideParameters Object specifying what default attributes of the entity factory should be overridden + */ + makeEntity(overrideParameters?: EntityData): T { const entity = this.em.create(this.model, { ...this.definition(faker), ...overrideParameters, - } as unknown as RequiredEntityData); + } as unknown as RequiredEntityData, { persist: false }); if (this.eachFunction) { this.eachFunction(entity); diff --git a/tests/features/seeder/factory.test.ts b/tests/features/seeder/factory.test.ts index 6445b0ca9367..6dc6e909c24e 100644 --- a/tests/features/seeder/factory.test.ts +++ b/tests/features/seeder/factory.test.ts @@ -82,14 +82,14 @@ describe('Factory', () => { test('that a factory can make multiple instances of an entity without saving them in the database', async () => { const projects = new ProjectFactory(orm.em).make(5); expect(projects).toBeInstanceOf(Array); - expect(persistSpy).toBeCalledTimes(6); + expect(persistSpy).toBeCalledTimes(1); expect(flushSpy).not.toBeCalled(); expect(projects.length).toBe(5); }); test('that a factory can create multiple instances of an entity and save them in the database', async () => { const projectSaved = await new ProjectFactory(orm.em).create(5); - expect(persistSpy).toBeCalledTimes(6); + expect(persistSpy).toBeCalledTimes(1); expect(flushSpy).toBeCalledTimes(1); expect(projectSaved).toBeInstanceOf(Array); expect(projectSaved.length).toBe(5);