From a220743083287b806f66ded77aa6c9f9396f48b4 Mon Sep 17 00:00:00 2001 From: Laure Jablonski Date: Sat, 8 Mar 2025 21:47:05 +0100 Subject: [PATCH] test: testen voor group repo klaargezet, er is nog iets mis --- backend/tests/data/groups.test.ts | 70 +++++++++++++++++++++++++++++++ backend/tests/setup-tests.ts | 51 +++++++++++----------- 2 files changed, 97 insertions(+), 24 deletions(-) create mode 100644 backend/tests/data/groups.test.ts diff --git a/backend/tests/data/groups.test.ts b/backend/tests/data/groups.test.ts new file mode 100644 index 00000000..68a2547d --- /dev/null +++ b/backend/tests/data/groups.test.ts @@ -0,0 +1,70 @@ +import { beforeAll, describe, expect, it } from 'vitest'; +import { setupTestApp } from '../setup-tests'; +import { GroupRepository } from '../../src/data/assignments/group-repository'; +import { + getAssignmentRepository, + getClassRepository, + getGroupRepository, +} from '../../src/data/repositories'; +import { AssignmentRepository } from '../../src/data/assignments/assignment-repository'; +import { ClassRepository } from '../../src/data/classes/class-repository'; +import { Class } from '../../src/entities/classes/class.entity'; + +describe('GroupRepository', () => { + let GroupRepository: GroupRepository; + let AssignmentRepository: AssignmentRepository; + let ClassRepository: ClassRepository; + + beforeAll(async () => { + await setupTestApp(); + GroupRepository = getGroupRepository(); + AssignmentRepository = getAssignmentRepository(); + ClassRepository = getClassRepository(); + }); + + it('should return the requested group', async () => { + const class_ = await ClassRepository.findById('id01'); + const assignment = await AssignmentRepository.findByClassAndId( + class_!, + 1 + ); + + const group = await GroupRepository.findByAssignmentAndGroupNumber( + assignment!, + 1 + ); + + expect(group).toBeTruthy(); + }); + + it('should return all groups for assignment', async () => { + const class_ = await ClassRepository.findById('id01'); + const assignment = await AssignmentRepository.findByClassAndId( + class_!, + 1 + ); + + const groups = await GroupRepository.findAllGroupsForAssignment( + assignment! + ); + + expect(groups).toBeTruthy(); + expect(groups).toHaveLength(3); + }); + + // it('should not find removed group', async () => { + // const class_ = await ClassRepository.findById('id02'); + // const assignment = await AssignmentRepository.findByClassAndId( + // class_!, + // 1 + // ); + // await GroupRepository.deleteByAssignmentAndGroupNumber(assignment!, 1); + + // const group = await GroupRepository.findByAssignmentAndGroupNumber( + // assignment!, + // 1 + // ); + + // expect(group).toBeNull(); + // }); +}); diff --git a/backend/tests/setup-tests.ts b/backend/tests/setup-tests.ts index b6402676..c1e30c1c 100644 --- a/backend/tests/setup-tests.ts +++ b/backend/tests/setup-tests.ts @@ -392,34 +392,32 @@ export async function setupTestApp() { groups: [], }); - // const group01 = em.create(Group, { - // assignment: assignment01, - // groupNumber: 1, - // members: [student01, student02], - // }); + const group01 = em.create(Group, { + assignment: assignment01, + groupNumber: 1, + members: [student01, student02], + }); - // const group02 = em.create(Group, { - // assignment: assignment01, - // groupNumber: 2, - // members: [student03, student04], - // }); + const group02 = em.create(Group, { + assignment: assignment01, + groupNumber: 2, + members: [student03, student04], + }); - // const group03 = em.create(Group, { - // assignment: assignment01, - // groupNumber: 3, - // members: [student05, student06], - // }); + const group03 = em.create(Group, { + assignment: assignment01, + groupNumber: 3, + members: [student05, student06], + }); - // const group04 = em.create(Group, { - // assignment: assignment02, - // groupNumber: 1, - // members: [student04], - // }); + const group04 = em.create(Group, { + assignment: assignment02, + groupNumber: 4, + members: [student04], + }); - // assignment01.groups.push(group01); - // assignment01.groups.push(group02); - // assignment01.groups.push(group03); - // assignment02.groups.push(group04); + assignment01.groups = [group01, group02, group03]; + assignment02.groups = [group04]; const teacherInvitation01 = em.create(TeacherInvitation, { sender: teacher02, @@ -627,6 +625,11 @@ export async function setupTestApp() { teacherInvitation03, teacherInvitation04, assignment01, + assignment02, assignment03, + group01, + group02, + group03, + group04, ]); }