diff --git a/backend/tests/data/assignments.test.ts b/backend/tests/data/assignments.test.ts new file mode 100644 index 00000000..4494f19d --- /dev/null +++ b/backend/tests/data/assignments.test.ts @@ -0,0 +1,51 @@ +import { beforeAll, describe, expect, it } from 'vitest'; +import { setupTestApp } from '../setup-tests'; +import { AssignmentRepository } from '../../src/data/assignments/assignment-repository'; +import { + getAssignmentRepository, + getClassRepository, +} from '../../src/data/repositories'; +import { ClassRepository } from '../../src/data/classes/class-repository'; + +describe('AssignmentRepository', () => { + let AssignmentRepository: AssignmentRepository; + let ClassRepository: ClassRepository; + + beforeAll(async () => { + await setupTestApp(); + AssignmentRepository = getAssignmentRepository(); + ClassRepository = getClassRepository(); + }); + + it('should return the requested assignment', async () => { + const class_ = await ClassRepository.findById('id02'); + const assignment = await AssignmentRepository.findByClassAndId( + class_!, + 2 + ); + + expect(assignment).toBeTruthy(); + expect(assignment!.title).toBe('tool'); + }); + + it('should return all assignments for a class', async () => { + const class_ = await ClassRepository.findById('id02'); + const assignments = + await AssignmentRepository.findAllAssignmentsInClass(class_!); + + expect(assignments).toBeTruthy(); + expect(assignments).toHaveLength(1); + }); + + it('should not find removed assignment', async () => { + const class_ = await ClassRepository.findById('id01'); + await AssignmentRepository.deleteByClassAndId(class_!, 3); + + const assignment = await AssignmentRepository.findByClassAndId( + class_!, + 3 + ); + + expect(assignment).toBeNull(); + }); +}); diff --git a/backend/tests/setup-tests.ts b/backend/tests/setup-tests.ts index c9d31786..b6402676 100644 --- a/backend/tests/setup-tests.ts +++ b/backend/tests/setup-tests.ts @@ -362,35 +362,35 @@ export async function setupTestApp() { students: studentsClass04, }); - // const assignment01 = em.create(Assignment, { - // within: class01, - // id: 1, - // title: 'dire straits', - // description: 'reading', - // learningPathHruid: 'id02', - // learningPathLanguage: Language.English, - // groups: [], - // }); + const assignment01 = em.create(Assignment, { + within: class01, + id: 1, + title: 'dire straits', + description: 'reading', + learningPathHruid: 'id02', + learningPathLanguage: Language.English, + groups: [], + }); - // const assignment02 = em.create(Assignment, { - // within: class02, - // id: 2, - // title: 'tool', - // description: 'reading', - // learningPathHruid: 'id01', - // learningPathLanguage: Language.English, - // groups: [], - // }); + const assignment02 = em.create(Assignment, { + within: class02, + id: 2, + title: 'tool', + description: 'reading', + learningPathHruid: 'id01', + learningPathLanguage: Language.English, + groups: [], + }); - // const assignment03 = em.create(Assignment, { - // within: class01, - // id: 3, - // title: 'delete', - // description: 'will be deleted', - // learningPathHruid: 'id02', - // learningPathLanguage: Language.English, - // groups: [], - // }); + const assignment03 = em.create(Assignment, { + within: class01, + id: 3, + title: 'delete', + description: 'will be deleted', + learningPathHruid: 'id02', + learningPathLanguage: Language.English, + groups: [], + }); // const group01 = em.create(Group, { // assignment: assignment01, @@ -626,5 +626,7 @@ export async function setupTestApp() { teacherInvitation02, teacherInvitation03, teacherInvitation04, + assignment01, + assignment03, ]); }