From 0609152cb396eb1a585dece4617c98631acc27f1 Mon Sep 17 00:00:00 2001 From: Gerald Schmittinger Date: Wed, 16 Apr 2025 09:34:11 +0200 Subject: [PATCH] fix(backend): Overige falende testen gerepareerd. --- .../tests/data/content/attachments.test.ts | 15 +++----- .../learning-object-repository.test.ts | 2 ++ .../data/content/learning-objects.test.ts | 5 +-- .../processing/processing-service.test.ts | 36 +++++++++++++------ backend/tests/setup-tests.ts | 3 -- .../content.txt | 0 .../rendering.txt | 0 .../content.txt | 0 .../rendering.txt | 0 .../content/learning-objects.testdata.ts | 4 +-- 10 files changed, 36 insertions(+), 29 deletions(-) rename backend/tests/test_assets/content/learning-object-resources/{test-essay => test_essay_question}/content.txt (100%) rename backend/tests/test_assets/content/learning-object-resources/{test-essay => test_essay_question}/rendering.txt (100%) rename backend/tests/test_assets/content/learning-object-resources/{test-multiple-choice => test_multiple_choice}/content.txt (100%) rename backend/tests/test_assets/content/learning-object-resources/{test-multiple-choice => test_multiple_choice}/rendering.txt (100%) diff --git a/backend/tests/data/content/attachments.test.ts b/backend/tests/data/content/attachments.test.ts index 4e65954e..7d0bfd6b 100644 --- a/backend/tests/data/content/attachments.test.ts +++ b/backend/tests/data/content/attachments.test.ts @@ -1,28 +1,21 @@ import { beforeAll, describe, expect, it } from 'vitest'; import { setupTestApp } from '../../setup-tests.js'; -import { getAttachmentRepository, getLearningObjectRepository } from '../../../src/data/repositories.js'; +import { getAttachmentRepository } from '../../../src/data/repositories.js'; import { AttachmentRepository } from '../../../src/data/content/attachment-repository.js'; -import { LearningObjectRepository } from '../../../src/data/content/learning-object-repository.js'; -import { LearningObjectIdentifier } from '../../../src/entities/content/learning-object-identifier.js'; -import { Language } from '@dwengo-1/common/util/language'; +import { testLearningObject02 } from "../../test_assets/content/learning-objects.testdata"; describe('AttachmentRepository', () => { let attachmentRepository: AttachmentRepository; - let learningObjectRepository: LearningObjectRepository; beforeAll(async () => { await setupTestApp(); attachmentRepository = getAttachmentRepository(); - learningObjectRepository = getLearningObjectRepository(); }); it('should return the requested attachment', async () => { - const id = new LearningObjectIdentifier('id02', Language.English, 1); - const learningObject = await learningObjectRepository.findByIdentifier(id); - const attachment = await attachmentRepository.findByMostRecentVersionOfLearningObjectAndName( - learningObject!.hruid, - Language.English, + testLearningObject02.hruid, + testLearningObject02.language, 'attachment01' ); diff --git a/backend/tests/data/content/learning-object-repository.test.ts b/backend/tests/data/content/learning-object-repository.test.ts index d99beb4b..75d46796 100644 --- a/backend/tests/data/content/learning-object-repository.test.ts +++ b/backend/tests/data/content/learning-object-repository.test.ts @@ -9,6 +9,7 @@ import { testLearningObject02, testLearningObject03 } from "../../test_assets/content/learning-objects.testdata"; +import {v4} from "uuid"; describe('LearningObjectRepository', () => { let learningObjectRepository: LearningObjectRepository; @@ -43,6 +44,7 @@ describe('LearningObjectRepository', () => { let testLearningObject01Newer = structuredClone(testLearningObject01); testLearningObject01Newer.version = 10; testLearningObject01Newer.title += " (nieuw)"; + testLearningObject01Newer.uuid = v4(); testLearningObject01Newer.content = Buffer.from("This is the new content."); newerExample = learningObjectRepository.create(testLearningObject01Newer); await learningObjectRepository.save(newerExample); diff --git a/backend/tests/data/content/learning-objects.test.ts b/backend/tests/data/content/learning-objects.test.ts index 3c9d5dde..ef7fca79 100644 --- a/backend/tests/data/content/learning-objects.test.ts +++ b/backend/tests/data/content/learning-objects.test.ts @@ -4,6 +4,7 @@ import { getLearningObjectRepository } from '../../../src/data/repositories'; import { setupTestApp } from '../../setup-tests'; import { LearningObjectIdentifier } from '../../../src/entities/content/learning-object-identifier'; import { Language } from '@dwengo-1/common/util/language'; +import {testLearningObject01} from "../../test_assets/content/learning-objects.testdata"; describe('LearningObjectRepository', () => { let learningObjectRepository: LearningObjectRepository; @@ -13,8 +14,8 @@ describe('LearningObjectRepository', () => { learningObjectRepository = getLearningObjectRepository(); }); - const id01 = new LearningObjectIdentifier('id01', Language.English, 1); - const id02 = new LearningObjectIdentifier('test_id', Language.English, 1); + const id01 = new LearningObjectIdentifier(testLearningObject01.hruid, testLearningObject01.language, testLearningObject01.version); + const id02 = new LearningObjectIdentifier('non_existing_id', Language.English, 1); it('should return the learning object that matches identifier 1', async () => { const learningObject = await learningObjectRepository.findByIdentifier(id01); diff --git a/backend/tests/services/learning-objects/processing/processing-service.test.ts b/backend/tests/services/learning-objects/processing/processing-service.test.ts index 570a014d..d41b8afa 100644 --- a/backend/tests/services/learning-objects/processing/processing-service.test.ts +++ b/backend/tests/services/learning-objects/processing/processing-service.test.ts @@ -1,26 +1,40 @@ -import { describe, expect, it } from 'vitest'; -import mdExample from '../../../test-assets/learning-objects/pn-werkingnotebooks/pn-werkingnotebooks-example'; -import multipleChoiceExample from '../../../test-assets/learning-objects/test-multiple-choice/test-multiple-choice-example'; -import essayExample from '../../../test-assets/learning-objects/test-essay/test-essay-example'; +import {beforeAll, describe, expect, it} from 'vitest'; import processingService from '../../../../src/services/learning-objects/processing/processing-service'; +import { + testLearningObjectEssayQuestion, + testLearningObjectMultipleChoice, testLearningObjectPnNotebooks +} from "../../../test_assets/content/learning-objects.testdata"; +import {getHtmlRenderingForTestLearningObject} from "../../../test-utils/get-html-rendering"; +import {getLearningObjectRepository} from "../../../../src/data/repositories"; +import {setupTestApp} from "../../../setup-tests"; describe('ProcessingService', () => { + beforeAll(async () => { + await setupTestApp(); + }); + it('renders a markdown learning object correctly', async () => { - const markdownLearningObject = mdExample.createLearningObject(); + const markdownLearningObject = getLearningObjectRepository().create(testLearningObjectPnNotebooks); const result = await processingService.render(markdownLearningObject); // Set newlines so your tests are platform-independent. - expect(result).toEqual(mdExample.getHTMLRendering().replace(/\r\n/g, '\n')); + expect(result).toEqual( + getHtmlRenderingForTestLearningObject(markdownLearningObject).replace(/\r\n/g, '\n') + ); }); it('renders a multiple choice question correctly', async () => { - const multipleChoiceLearningObject = multipleChoiceExample.createLearningObject(); - const result = await processingService.render(multipleChoiceLearningObject); - expect(result).toEqual(multipleChoiceExample.getHTMLRendering().replace(/\r\n/g, '\n')); + const testLearningObject = getLearningObjectRepository().create(testLearningObjectMultipleChoice); + const result = await processingService.render(testLearningObject); + expect(result).toEqual( + getHtmlRenderingForTestLearningObject(testLearningObjectMultipleChoice).replace(/\r\n/g, '\n') + ); }); it('renders an essay question correctly', async () => { - const essayLearningObject = essayExample.createLearningObject(); + const essayLearningObject = getLearningObjectRepository().create(testLearningObjectEssayQuestion); const result = await processingService.render(essayLearningObject); - expect(result).toEqual(essayExample.getHTMLRendering().replace(/\r\n/g, '\n')); + expect(result).toEqual( + getHtmlRenderingForTestLearningObject(essayLearningObject).replace(/\r\n/g, '\n') + ); }); }); diff --git a/backend/tests/setup-tests.ts b/backend/tests/setup-tests.ts index ceefaf2e..0d71b434 100644 --- a/backend/tests/setup-tests.ts +++ b/backend/tests/setup-tests.ts @@ -15,7 +15,6 @@ import { makeTestAnswers } from './test_assets/questions/answers.testdata.js'; import { makeTestSubmissions } from './test_assets/assignments/submission.testdata.js'; import {Collection} from "@mikro-orm/core"; import {Group} from "../src/entities/assignments/group.entity"; -import {LearningObject} from "../src/entities/content/learning-object.entity"; export async function setupTestApp(): Promise { dotenv.config({ path: '.env.test' }); @@ -59,6 +58,4 @@ export async function setupTestApp(): Promise { ...answers, ...submissions, ]); - - console.log(await em.findAll(LearningObject)); } diff --git a/backend/tests/test_assets/content/learning-object-resources/test-essay/content.txt b/backend/tests/test_assets/content/learning-object-resources/test_essay_question/content.txt similarity index 100% rename from backend/tests/test_assets/content/learning-object-resources/test-essay/content.txt rename to backend/tests/test_assets/content/learning-object-resources/test_essay_question/content.txt diff --git a/backend/tests/test_assets/content/learning-object-resources/test-essay/rendering.txt b/backend/tests/test_assets/content/learning-object-resources/test_essay_question/rendering.txt similarity index 100% rename from backend/tests/test_assets/content/learning-object-resources/test-essay/rendering.txt rename to backend/tests/test_assets/content/learning-object-resources/test_essay_question/rendering.txt diff --git a/backend/tests/test_assets/content/learning-object-resources/test-multiple-choice/content.txt b/backend/tests/test_assets/content/learning-object-resources/test_multiple_choice/content.txt similarity index 100% rename from backend/tests/test_assets/content/learning-object-resources/test-multiple-choice/content.txt rename to backend/tests/test_assets/content/learning-object-resources/test_multiple_choice/content.txt diff --git a/backend/tests/test_assets/content/learning-object-resources/test-multiple-choice/rendering.txt b/backend/tests/test_assets/content/learning-object-resources/test_multiple_choice/rendering.txt similarity index 100% rename from backend/tests/test_assets/content/learning-object-resources/test-multiple-choice/rendering.txt rename to backend/tests/test_assets/content/learning-object-resources/test_multiple_choice/rendering.txt diff --git a/backend/tests/test_assets/content/learning-objects.testdata.ts b/backend/tests/test_assets/content/learning-objects.testdata.ts index 287a59ca..35ff46bf 100644 --- a/backend/tests/test_assets/content/learning-objects.testdata.ts +++ b/backend/tests/test_assets/content/learning-objects.testdata.ts @@ -179,7 +179,7 @@ export const testLearningObjectMultipleChoice: RequiredEntityData targetAges: [10, 11, 12, 13, 14, 15, 16, 17, 18], admins: [], contentType: DwengoContentType.GIFT, - content: loadTestAsset('content/learning-object-resources/test-essay/content.txt'), + content: loadTestAsset('content/learning-object-resources/test_essay_question/content.txt'), returnValue: { callbackUrl: `%SUBMISSION%`, callbackSchema: '["antwoord vraag 1"]',