From 965ba5dd2065f7f2ce9b5271c7e797b6d09536c6 Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Sat, 17 May 2025 18:44:49 +0200 Subject: [PATCH] test(frontend): searchLearningPathsByAdmin --- .../database-learning-path-provider.test.ts | 29 ++++++++++++++++++- .../content/learning-paths.testdata.ts | 2 ++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/backend/tests/services/learning-path/database-learning-path-provider.test.ts b/backend/tests/services/learning-path/database-learning-path-provider.test.ts index 2cc594d1..f3b3d4ee 100644 --- a/backend/tests/services/learning-path/database-learning-path-provider.test.ts +++ b/backend/tests/services/learning-path/database-learning-path-provider.test.ts @@ -14,11 +14,14 @@ import { testLearningObjectEssayQuestion, testLearningObjectMultipleChoice, } from '../../test_assets/content/learning-objects.testdata'; -import { testLearningPathWithConditions } from '../../test_assets/content/learning-paths.testdata'; +import { testLearningPath02, testLearningPathWithConditions } from '../../test_assets/content/learning-paths.testdata'; import { mapToLearningPath } from '../../../src/services/learning-paths/learning-path-service'; import { getTestGroup01, getTestGroup02 } from '../../test_assets/assignments/groups.testdata'; import { Group } from '../../../src/entities/assignments/group.entity.js'; +import { Teacher } from '../../../src/entities/users/teacher.entity.js'; import { RequiredEntityData } from '@mikro-orm/core'; +import { getFooFighters, getLimpBizkit } from '../../test_assets/users/teachers.testdata'; +import { mapToTeacherDTO } from '../../../src/interfaces/teacher'; function expectBranchingObjectNode(result: LearningPathResponse): LearningObjectNode { const branchingObjectMatches = result.data![0].nodes.filter((it) => it.learningobject_hruid === testLearningObjectMultipleChoice.hruid); @@ -33,6 +36,8 @@ describe('DatabaseLearningPathProvider', () => { let finalLearningObject: RequiredEntityData; let groupA: Group; let groupB: Group; + let teacherA: Teacher; + let teacherB: Teacher; beforeAll(async () => { await setupTestApp(); @@ -42,6 +47,8 @@ describe('DatabaseLearningPathProvider', () => { finalLearningObject = testLearningObjectEssayQuestion; groupA = getTestGroup01(); groupB = getTestGroup02(); + teacherA = getFooFighters(); + teacherB = getLimpBizkit(); // Place different submissions for group A and B. const submissionRepo = getSubmissionRepository(); @@ -140,4 +147,24 @@ describe('DatabaseLearningPathProvider', () => { expect(result.length).toBe(0); }); }); + + describe('searchLearningPathsByAdmin', () => { + it('returns the learning path owned by the admin', async () => { + const expectedLearningPath = mapToLearningPath(testLearningPath02, [mapToTeacherDTO(teacherB)]); + const result = await databaseLearningPathProvider.searchLearningPathsByAdmin( + [teacherB], + expectedLearningPath.language + ); + expect(result.length).toBe(1); + expect(result[0].title).toBe(expectedLearningPath.title); + expect(result[0].description).toBe(expectedLearningPath.description); + }); + it('returns an empty result when querying admins that do not have custom learning paths', async() => { + const result = await databaseLearningPathProvider.searchLearningPathsByAdmin( + [teacherA], + testLearningPath.language + ); + expect(result.length).toBe(0); + }); + }); }); diff --git a/backend/tests/test_assets/content/learning-paths.testdata.ts b/backend/tests/test_assets/content/learning-paths.testdata.ts index 2a0640f8..a89ce60a 100644 --- a/backend/tests/test_assets/content/learning-paths.testdata.ts +++ b/backend/tests/test_assets/content/learning-paths.testdata.ts @@ -14,10 +14,12 @@ import { testLearningObjectMultipleChoice, testLearningObjectPnNotebooks, } from './learning-objects.testdata'; +import { getLimpBizkit } from '../users/teachers.testdata'; export function makeTestLearningPaths(_em: EntityManager): LearningPath[] { const learningPath01 = mapToLearningPath(testLearningPath01, []); const learningPath02 = mapToLearningPath(testLearningPath02, []); + learningPath02.admins = [getLimpBizkit()]; const partiallyDatabasePartiallyDwengoApiLearningPath = mapToLearningPath(testPartiallyDatabaseAndPartiallyDwengoApiLearningPath, []); const learningPathWithConditions = mapToLearningPath(testLearningPathWithConditions, []);