diff --git a/backend/src/data/repositories.ts b/backend/src/data/repositories.ts index 852d9d6a..f09c3c75 100644 --- a/backend/src/data/repositories.ts +++ b/backend/src/data/repositories.ts @@ -34,8 +34,8 @@ let entityManager: EntityManager | undefined; /** * Execute all the database operations within the function f in a single transaction. */ -export function transactional(f: () => Promise): void { - entityManager?.transactional(f); +export async function transactional(f: () => Promise): Promise { + await entityManager?.transactional(f); } function repositoryGetter>(entity: EntityName): () => R { diff --git a/backend/tests/data/content/attachment-repository.test.ts b/backend/tests/data/content/attachment-repository.test.ts index 85c1f1c5..84dfee68 100644 --- a/backend/tests/data/content/attachment-repository.test.ts +++ b/backend/tests/data/content/attachment-repository.test.ts @@ -10,9 +10,12 @@ import { LearningObjectIdentifier } from '../../../src/entities/content/learning const NEWER_TEST_SUFFIX = 'nEweR'; -function createTestLearningObjects(learningObjectRepo: LearningObjectRepository): { older: LearningObject; newer: LearningObject } { +async function createTestLearningObjects(learningObjectRepo: LearningObjectRepository): Promise<{ + older: LearningObject; + newer: LearningObject +}> { const olderExample = example.createLearningObject(); - learningObjectRepo.save(olderExample); + await learningObjectRepo.save(olderExample); const newerExample = example.createLearningObject(); newerExample.title = 'Newer example'; @@ -32,23 +35,21 @@ describe('AttachmentRepository', () => { beforeAll(async () => { await setupTestApp(); attachmentRepo = getAttachmentRepository(); - exampleLearningObjects = createTestLearningObjects(getLearningObjectRepository()); + exampleLearningObjects = await createTestLearningObjects(getLearningObjectRepository()); }); - it('can add attachments to learning objects without throwing an error', () => { + it('can add attachments to learning objects without throwing an error', async () => { attachmentsOlderLearningObject = Object.values(example.createAttachment).map((fn) => fn(exampleLearningObjects.older)); - for (const attachment of attachmentsOlderLearningObject) { - attachmentRepo.save(attachment); - } + await Promise.all(attachmentsOlderLearningObject.map(async (attachment) => attachmentRepo.save(attachment))); }); let attachmentOnlyNewer: Attachment; - it('allows us to add attachments with the same name to a different learning object without throwing an error', () => { + it('allows us to add attachments with the same name to a different learning object without throwing an error', async () => { attachmentOnlyNewer = Object.values(example.createAttachment)[0](exampleLearningObjects.newer); attachmentOnlyNewer.content.write(NEWER_TEST_SUFFIX); - attachmentRepo.save(attachmentOnlyNewer); + await attachmentRepo.save(attachmentOnlyNewer); }); let olderLearningObjectId: LearningObjectIdentifier; diff --git a/frontend/src/App.vue b/frontend/src/App.vue index d355c43d..736e1cd9 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -1,6 +1,6 @@