refactor: tests class ids naar kleinere zonder hardcoding
This commit is contained in:
		
							parent
							
								
									81e0af28cc
								
							
						
					
					
						commit
						9643e25aed
					
				
					 15 changed files with 100 additions and 37 deletions
				
			
		
							
								
								
									
										49
									
								
								backend/tests/controllers/classes.test.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								backend/tests/controllers/classes.test.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,49 @@ | ||||||
|  | import { setupTestApp } from '../setup-tests.js'; | ||||||
|  | import { describe, it, expect, beforeAll, beforeEach, vi, Mock } from 'vitest'; | ||||||
|  | import { Request, Response } from 'express'; | ||||||
|  | import {createClassHandler, deleteClassHandler} from "../../src/controllers/classes"; | ||||||
|  | 
 | ||||||
|  | describe('Class controllers', () => { | ||||||
|  |     let req: Partial<Request>; | ||||||
|  |     let res: Partial<Response>; | ||||||
|  | 
 | ||||||
|  |     let jsonMock: Mock; | ||||||
|  |     let statusMock: Mock; | ||||||
|  | 
 | ||||||
|  |     beforeAll(async () => { | ||||||
|  |         await setupTestApp(); | ||||||
|  |     }); | ||||||
|  | 
 | ||||||
|  |     beforeEach(async () => { | ||||||
|  |         jsonMock = vi.fn(); | ||||||
|  |         statusMock = vi.fn().mockReturnThis(); | ||||||
|  | 
 | ||||||
|  |         res = { | ||||||
|  |             json: jsonMock, | ||||||
|  |             status: statusMock, | ||||||
|  |         }; | ||||||
|  |     }); | ||||||
|  | 
 | ||||||
|  |     it('create and delete class', async () => { | ||||||
|  |         req = { | ||||||
|  |             body: { displayName: 'coole_nieuwe_klas' }, | ||||||
|  |         }; | ||||||
|  | 
 | ||||||
|  |         await createClassHandler(req as Request, res as Response); | ||||||
|  | 
 | ||||||
|  |         const result = jsonMock.mock.lastCall?.[0]; | ||||||
|  |         console.log('class', result.class); | ||||||
|  | 
 | ||||||
|  |         expect(jsonMock).toHaveBeenCalledWith(expect.objectContaining({ class: expect.anything() })); | ||||||
|  | 
 | ||||||
|  |         req = { | ||||||
|  |             params: { id: result.class.id }, | ||||||
|  |         }; | ||||||
|  | 
 | ||||||
|  |         await deleteClassHandler(req as Request, res as Response); | ||||||
|  | 
 | ||||||
|  |         expect(jsonMock).toHaveBeenCalledWith(expect.objectContaining({ class: expect.anything() })); | ||||||
|  |     }); | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | }); | ||||||
|  | @ -21,6 +21,7 @@ import { BadRequestException } from '../../src/exceptions/bad-request-exception. | ||||||
| import { ConflictException } from '../../src/exceptions/conflict-exception.js'; | import { ConflictException } from '../../src/exceptions/conflict-exception.js'; | ||||||
| import { EntityAlreadyExistsException } from '../../src/exceptions/entity-already-exists-exception.js'; | import { EntityAlreadyExistsException } from '../../src/exceptions/entity-already-exists-exception.js'; | ||||||
| import { StudentDTO } from '@dwengo-1/common/interfaces/student'; | import { StudentDTO } from '@dwengo-1/common/interfaces/student'; | ||||||
|  | import {getClass02} from "../test_assets/classes/classes.testdata"; | ||||||
| 
 | 
 | ||||||
| describe('Student controllers', () => { | describe('Student controllers', () => { | ||||||
|     let req: Partial<Request>; |     let req: Partial<Request>; | ||||||
|  | @ -186,7 +187,7 @@ describe('Student controllers', () => { | ||||||
| 
 | 
 | ||||||
|     it('Get join request by student and class', async () => { |     it('Get join request by student and class', async () => { | ||||||
|         req = { |         req = { | ||||||
|             params: { username: 'PinkFloyd', classId: '34d484a1-295f-4e9f-bfdc-3e7a23d86a89' }, |             params: { username: 'PinkFloyd', classId: getClass02().classId }, | ||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
|         await getStudentRequestHandler(req as Request, res as Response); |         await getStudentRequestHandler(req as Request, res as Response); | ||||||
|  | @ -201,7 +202,7 @@ describe('Student controllers', () => { | ||||||
|     it('Create and delete join request', async () => { |     it('Create and delete join request', async () => { | ||||||
|         req = { |         req = { | ||||||
|             params: { username: 'TheDoors' }, |             params: { username: 'TheDoors' }, | ||||||
|             body: { classId: '34d484a1-295f-4e9f-bfdc-3e7a23d86a89' }, |             body: { classId: getClass02().classId }, | ||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
|         await createStudentRequestHandler(req as Request, res as Response); |         await createStudentRequestHandler(req as Request, res as Response); | ||||||
|  | @ -209,7 +210,7 @@ describe('Student controllers', () => { | ||||||
|         expect(jsonMock).toHaveBeenCalledWith(expect.objectContaining({ request: expect.anything() })); |         expect(jsonMock).toHaveBeenCalledWith(expect.objectContaining({ request: expect.anything() })); | ||||||
| 
 | 
 | ||||||
|         req = { |         req = { | ||||||
|             params: { username: 'TheDoors', classId: '34d484a1-295f-4e9f-bfdc-3e7a23d86a89' }, |             params: { username: 'TheDoors', classId: getClass02().classId }, | ||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
|         await deleteClassJoinRequestHandler(req as Request, res as Response); |         await deleteClassJoinRequestHandler(req as Request, res as Response); | ||||||
|  | @ -222,7 +223,7 @@ describe('Student controllers', () => { | ||||||
|     it('Create join request student already in class error', async () => { |     it('Create join request student already in class error', async () => { | ||||||
|         req = { |         req = { | ||||||
|             params: { username: 'Noordkaap' }, |             params: { username: 'Noordkaap' }, | ||||||
|             body: { classId: '34d484a1-295f-4e9f-bfdc-3e7a23d86a89' }, |             body: { classId: getClass02().classId }, | ||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
|         await expect(async () => createStudentRequestHandler(req as Request, res as Response)).rejects.toThrow(ConflictException); |         await expect(async () => createStudentRequestHandler(req as Request, res as Response)).rejects.toThrow(ConflictException); | ||||||
|  | @ -231,7 +232,7 @@ describe('Student controllers', () => { | ||||||
|     it('Create join request duplicate', async () => { |     it('Create join request duplicate', async () => { | ||||||
|         req = { |         req = { | ||||||
|             params: { username: 'Tool' }, |             params: { username: 'Tool' }, | ||||||
|             body: { classId: '34d484a1-295f-4e9f-bfdc-3e7a23d86a89' }, |             body: { classId: getClass02().classId }, | ||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
|         await expect(async () => createStudentRequestHandler(req as Request, res as Response)).rejects.toThrow(ConflictException); |         await expect(async () => createStudentRequestHandler(req as Request, res as Response)).rejects.toThrow(ConflictException); | ||||||
|  |  | ||||||
|  | @ -12,6 +12,7 @@ import { TeacherInvitationData } from '@dwengo-1/common/interfaces/teacher-invit | ||||||
| import { getClassHandler } from '../../src/controllers/classes'; | import { getClassHandler } from '../../src/controllers/classes'; | ||||||
| import { BadRequestException } from '../../src/exceptions/bad-request-exception'; | import { BadRequestException } from '../../src/exceptions/bad-request-exception'; | ||||||
| import { ClassStatus } from '@dwengo-1/common/util/class-join-request'; | import { ClassStatus } from '@dwengo-1/common/util/class-join-request'; | ||||||
|  | import {getClass02} from "../test_assets/classes/classes.testdata"; | ||||||
| 
 | 
 | ||||||
| describe('Teacher controllers', () => { | describe('Teacher controllers', () => { | ||||||
|     let req: Partial<Request>; |     let req: Partial<Request>; | ||||||
|  | @ -57,7 +58,7 @@ describe('Teacher controllers', () => { | ||||||
|         const body = { |         const body = { | ||||||
|             sender: 'LimpBizkit', |             sender: 'LimpBizkit', | ||||||
|             receiver: 'testleerkracht1', |             receiver: 'testleerkracht1', | ||||||
|             class: '34d484a1-295f-4e9f-bfdc-3e7a23d86a89', |             class: getClass02().classId, | ||||||
|         } as TeacherInvitationData; |         } as TeacherInvitationData; | ||||||
|         req = { body }; |         req = { body }; | ||||||
| 
 | 
 | ||||||
|  | @ -67,7 +68,7 @@ describe('Teacher controllers', () => { | ||||||
|             params: { |             params: { | ||||||
|                 sender: 'LimpBizkit', |                 sender: 'LimpBizkit', | ||||||
|                 receiver: 'testleerkracht1', |                 receiver: 'testleerkracht1', | ||||||
|                 classId: '34d484a1-295f-4e9f-bfdc-3e7a23d86a89', |                 classId: getClass02().classId, | ||||||
|             }, |             }, | ||||||
|             body: { accepted: 'false' }, |             body: { accepted: 'false' }, | ||||||
|         }; |         }; | ||||||
|  | @ -80,7 +81,7 @@ describe('Teacher controllers', () => { | ||||||
|             params: { |             params: { | ||||||
|                 sender: 'LimpBizkit', |                 sender: 'LimpBizkit', | ||||||
|                 receiver: 'FooFighters', |                 receiver: 'FooFighters', | ||||||
|                 classId: '34d484a1-295f-4e9f-bfdc-3e7a23d86a89', |                 classId: getClass02().classId, | ||||||
|             }, |             }, | ||||||
|         }; |         }; | ||||||
|         await getInvitationHandler(req as Request, res as Response); |         await getInvitationHandler(req as Request, res as Response); | ||||||
|  | @ -100,7 +101,7 @@ describe('Teacher controllers', () => { | ||||||
|         const body = { |         const body = { | ||||||
|             sender: 'LimpBizkit', |             sender: 'LimpBizkit', | ||||||
|             receiver: 'FooFighters', |             receiver: 'FooFighters', | ||||||
|             class: '34d484a1-295f-4e9f-bfdc-3e7a23d86a89', |             class: getClass02().classId, | ||||||
|         } as TeacherInvitationData; |         } as TeacherInvitationData; | ||||||
|         req = { body }; |         req = { body }; | ||||||
| 
 | 
 | ||||||
|  | @ -111,7 +112,7 @@ describe('Teacher controllers', () => { | ||||||
| 
 | 
 | ||||||
|         req = { |         req = { | ||||||
|             params: { |             params: { | ||||||
|                 id: '34d484a1-295f-4e9f-bfdc-3e7a23d86a89', |                 id: getClass02().classId, | ||||||
|             }, |             }, | ||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -17,6 +17,7 @@ import { EntityAlreadyExistsException } from '../../src/exceptions/entity-alread | ||||||
| import { getStudentRequestsHandler } from '../../src/controllers/students.js'; | import { getStudentRequestsHandler } from '../../src/controllers/students.js'; | ||||||
| import { TeacherDTO } from '@dwengo-1/common/interfaces/teacher'; | import { TeacherDTO } from '@dwengo-1/common/interfaces/teacher'; | ||||||
| import { getClassHandler } from '../../src/controllers/classes'; | import { getClassHandler } from '../../src/controllers/classes'; | ||||||
|  | import {getClass02} from "../test_assets/classes/classes.testdata"; | ||||||
| 
 | 
 | ||||||
| describe('Teacher controllers', () => { | describe('Teacher controllers', () => { | ||||||
|     let req: Partial<Request>; |     let req: Partial<Request>; | ||||||
|  | @ -169,7 +170,7 @@ describe('Teacher controllers', () => { | ||||||
| 
 | 
 | ||||||
|     it('Get join requests by class', async () => { |     it('Get join requests by class', async () => { | ||||||
|         req = { |         req = { | ||||||
|             params: { classId: '34d484a1-295f-4e9f-bfdc-3e7a23d86a89' }, |             params: { classId: getClass02().classId }, | ||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
|         await getStudentJoinRequestHandler(req as Request, res as Response); |         await getStudentJoinRequestHandler(req as Request, res as Response); | ||||||
|  | @ -183,7 +184,7 @@ describe('Teacher controllers', () => { | ||||||
| 
 | 
 | ||||||
|     it('Update join request status', async () => { |     it('Update join request status', async () => { | ||||||
|         req = { |         req = { | ||||||
|             params: { classId: '34d484a1-295f-4e9f-bfdc-3e7a23d86a89', studentUsername: 'PinkFloyd' }, |             params: { classId: getClass02().classId, studentUsername: 'PinkFloyd' }, | ||||||
|             body: { accepted: 'true' }, |             body: { accepted: 'true' }, | ||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
|  | @ -201,7 +202,7 @@ describe('Teacher controllers', () => { | ||||||
|         expect(status).toBeTruthy(); |         expect(status).toBeTruthy(); | ||||||
| 
 | 
 | ||||||
|         req = { |         req = { | ||||||
|             params: { id: '34d484a1-295f-4e9f-bfdc-3e7a23d86a89' }, |             params: { id: getClass02().classId }, | ||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
|         await getClassHandler(req as Request, res as Response); |         await getClassHandler(req as Request, res as Response); | ||||||
|  |  | ||||||
|  | @ -3,6 +3,7 @@ import { setupTestApp } from '../../setup-tests'; | ||||||
| import { AssignmentRepository } from '../../../src/data/assignments/assignment-repository'; | import { AssignmentRepository } from '../../../src/data/assignments/assignment-repository'; | ||||||
| import { getAssignmentRepository, getClassRepository } from '../../../src/data/repositories'; | import { getAssignmentRepository, getClassRepository } from '../../../src/data/repositories'; | ||||||
| import { ClassRepository } from '../../../src/data/classes/class-repository'; | import { ClassRepository } from '../../../src/data/classes/class-repository'; | ||||||
|  | import {getClass02} from "../../test_assets/classes/classes.testdata"; | ||||||
| 
 | 
 | ||||||
| describe('AssignmentRepository', () => { | describe('AssignmentRepository', () => { | ||||||
|     let assignmentRepository: AssignmentRepository; |     let assignmentRepository: AssignmentRepository; | ||||||
|  | @ -15,7 +16,7 @@ describe('AssignmentRepository', () => { | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     it('should return the requested assignment', async () => { |     it('should return the requested assignment', async () => { | ||||||
|         const class_ = await classRepository.findById('34d484a1-295f-4e9f-bfdc-3e7a23d86a89'); |         const class_ = await classRepository.findById(getClass02().classId); | ||||||
|         const assignment = await assignmentRepository.findByClassAndId(class_!, 21001); |         const assignment = await assignmentRepository.findByClassAndId(class_!, 21001); | ||||||
| 
 | 
 | ||||||
|         expect(assignment).toBeTruthy(); |         expect(assignment).toBeTruthy(); | ||||||
|  | @ -23,7 +24,7 @@ describe('AssignmentRepository', () => { | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     it('should return all assignments for a class', async () => { |     it('should return all assignments for a class', async () => { | ||||||
|         const class_ = await classRepository.findById('34d484a1-295f-4e9f-bfdc-3e7a23d86a89'); |         const class_ = await classRepository.findById(getClass02().classId); | ||||||
|         const assignments = await assignmentRepository.findAllAssignmentsInClass(class_!); |         const assignments = await assignmentRepository.findAllAssignmentsInClass(class_!); | ||||||
| 
 | 
 | ||||||
|         expect(assignments).toBeTruthy(); |         expect(assignments).toBeTruthy(); | ||||||
|  |  | ||||||
|  | @ -4,6 +4,7 @@ import { GroupRepository } from '../../../src/data/assignments/group-repository' | ||||||
| import { getAssignmentRepository, getClassRepository, getGroupRepository } from '../../../src/data/repositories'; | import { getAssignmentRepository, getClassRepository, getGroupRepository } from '../../../src/data/repositories'; | ||||||
| import { AssignmentRepository } from '../../../src/data/assignments/assignment-repository'; | import { AssignmentRepository } from '../../../src/data/assignments/assignment-repository'; | ||||||
| import { ClassRepository } from '../../../src/data/classes/class-repository'; | import { ClassRepository } from '../../../src/data/classes/class-repository'; | ||||||
|  | import {getClass01, getClass02} from "../../test_assets/classes/classes.testdata"; | ||||||
| 
 | 
 | ||||||
| describe('GroupRepository', () => { | describe('GroupRepository', () => { | ||||||
|     let groupRepository: GroupRepository; |     let groupRepository: GroupRepository; | ||||||
|  | @ -18,7 +19,8 @@ describe('GroupRepository', () => { | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     it('should return the requested group', async () => { |     it('should return the requested group', async () => { | ||||||
|         const class_ = await classRepository.findById('8764b861-90a6-42e5-9732-c0d9eb2f55f9'); |         const id = getClass01().classId; | ||||||
|  |         const class_ = await classRepository.findById(id); | ||||||
|         const assignment = await assignmentRepository.findByClassAndId(class_!, 21000); |         const assignment = await assignmentRepository.findByClassAndId(class_!, 21000); | ||||||
| 
 | 
 | ||||||
|         const group = await groupRepository.findByAssignmentAndGroupNumber(assignment!, 21001); |         const group = await groupRepository.findByAssignmentAndGroupNumber(assignment!, 21001); | ||||||
|  | @ -27,7 +29,7 @@ describe('GroupRepository', () => { | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     it('should return all groups for assignment', async () => { |     it('should return all groups for assignment', async () => { | ||||||
|         const class_ = await classRepository.findById('8764b861-90a6-42e5-9732-c0d9eb2f55f9'); |         const class_ = await classRepository.findById(getClass01().classId); | ||||||
|         const assignment = await assignmentRepository.findByClassAndId(class_!, 21000); |         const assignment = await assignmentRepository.findByClassAndId(class_!, 21000); | ||||||
| 
 | 
 | ||||||
|         const groups = await groupRepository.findAllGroupsForAssignment(assignment!); |         const groups = await groupRepository.findAllGroupsForAssignment(assignment!); | ||||||
|  | @ -37,7 +39,7 @@ describe('GroupRepository', () => { | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     it('should not find removed group', async () => { |     it('should not find removed group', async () => { | ||||||
|         const class_ = await classRepository.findById('34d484a1-295f-4e9f-bfdc-3e7a23d86a89'); |         const class_ = await classRepository.findById(getClass02().classId); | ||||||
|         const assignment = await assignmentRepository.findByClassAndId(class_!, 21001); |         const assignment = await assignmentRepository.findByClassAndId(class_!, 21001); | ||||||
| 
 | 
 | ||||||
|         await groupRepository.deleteByAssignmentAndGroupNumber(assignment!, 21001); |         await groupRepository.deleteByAssignmentAndGroupNumber(assignment!, 21001); | ||||||
|  |  | ||||||
|  | @ -18,6 +18,7 @@ import { Submission } from '../../../src/entities/assignments/submission.entity' | ||||||
| import { Class } from '../../../src/entities/classes/class.entity'; | import { Class } from '../../../src/entities/classes/class.entity'; | ||||||
| import { Assignment } from '../../../src/entities/assignments/assignment.entity'; | import { Assignment } from '../../../src/entities/assignments/assignment.entity'; | ||||||
| import { testLearningObject01 } from '../../test_assets/content/learning-objects.testdata'; | import { testLearningObject01 } from '../../test_assets/content/learning-objects.testdata'; | ||||||
|  | import {getClass01} from "../../test_assets/classes/classes.testdata"; | ||||||
| 
 | 
 | ||||||
| describe('SubmissionRepository', () => { | describe('SubmissionRepository', () => { | ||||||
|     let submissionRepository: SubmissionRepository; |     let submissionRepository: SubmissionRepository; | ||||||
|  | @ -54,7 +55,7 @@ describe('SubmissionRepository', () => { | ||||||
| 
 | 
 | ||||||
|     it('should find the most recent submission for a group', async () => { |     it('should find the most recent submission for a group', async () => { | ||||||
|         const id = new LearningObjectIdentifier('id03', Language.English, 1); |         const id = new LearningObjectIdentifier('id03', Language.English, 1); | ||||||
|         const class_ = await classRepository.findById('8764b861-90a6-42e5-9732-c0d9eb2f55f9'); |         const class_ = await classRepository.findById(getClass01().classId); | ||||||
|         const assignment = await assignmentRepository.findByClassAndId(class_!, 21000); |         const assignment = await assignmentRepository.findByClassAndId(class_!, 21000); | ||||||
|         const group = await groupRepository.findByAssignmentAndGroupNumber(assignment!, 21001); |         const group = await groupRepository.findByAssignmentAndGroupNumber(assignment!, 21001); | ||||||
|         const submission = await submissionRepository.findMostRecentSubmissionForGroup(id, group!); |         const submission = await submissionRepository.findMostRecentSubmissionForGroup(id, group!); | ||||||
|  | @ -67,7 +68,7 @@ describe('SubmissionRepository', () => { | ||||||
|     let assignment: Assignment | null; |     let assignment: Assignment | null; | ||||||
|     let loId: LearningObjectIdentifier; |     let loId: LearningObjectIdentifier; | ||||||
|     it('should find all submissions for a certain learning object and assignment', async () => { |     it('should find all submissions for a certain learning object and assignment', async () => { | ||||||
|         clazz = await classRepository.findById('8764b861-90a6-42e5-9732-c0d9eb2f55f9'); |         clazz = await classRepository.findById(getClass01().classId); | ||||||
|         assignment = await assignmentRepository.findByClassAndId(clazz!, 21000); |         assignment = await assignmentRepository.findByClassAndId(clazz!, 21000); | ||||||
|         loId = { |         loId = { | ||||||
|             hruid: 'id02', |             hruid: 'id02', | ||||||
|  |  | ||||||
|  | @ -4,6 +4,7 @@ import { ClassJoinRequestRepository } from '../../../src/data/classes/class-join | ||||||
| import { getClassJoinRequestRepository, getClassRepository, getStudentRepository } from '../../../src/data/repositories'; | import { getClassJoinRequestRepository, getClassRepository, getStudentRepository } from '../../../src/data/repositories'; | ||||||
| import { StudentRepository } from '../../../src/data/users/student-repository'; | import { StudentRepository } from '../../../src/data/users/student-repository'; | ||||||
| import { ClassRepository } from '../../../src/data/classes/class-repository'; | import { ClassRepository } from '../../../src/data/classes/class-repository'; | ||||||
|  | import {getClass02, getClass03} from "../../test_assets/classes/classes.testdata"; | ||||||
| 
 | 
 | ||||||
| describe('ClassJoinRequestRepository', () => { | describe('ClassJoinRequestRepository', () => { | ||||||
|     let classJoinRequestRepository: ClassJoinRequestRepository; |     let classJoinRequestRepository: ClassJoinRequestRepository; | ||||||
|  | @ -26,7 +27,7 @@ describe('ClassJoinRequestRepository', () => { | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     it('should list all requests to a single class', async () => { |     it('should list all requests to a single class', async () => { | ||||||
|         const class_ = await cassRepository.findById('34d484a1-295f-4e9f-bfdc-3e7a23d86a89'); |         const class_ = await cassRepository.findById(getClass02().classId); | ||||||
|         const requests = await classJoinRequestRepository.findAllOpenRequestsTo(class_!); |         const requests = await classJoinRequestRepository.findAllOpenRequestsTo(class_!); | ||||||
| 
 | 
 | ||||||
|         expect(requests).toBeTruthy(); |         expect(requests).toBeTruthy(); | ||||||
|  | @ -35,7 +36,7 @@ describe('ClassJoinRequestRepository', () => { | ||||||
| 
 | 
 | ||||||
|     it('should not find a removed request', async () => { |     it('should not find a removed request', async () => { | ||||||
|         const student = await studentRepository.findByUsername('SmashingPumpkins'); |         const student = await studentRepository.findByUsername('SmashingPumpkins'); | ||||||
|         const class_ = await cassRepository.findById('80dcc3e0-1811-4091-9361-42c0eee91cfa'); |         const class_ = await cassRepository.findById(getClass03().classId); | ||||||
|         await classJoinRequestRepository.deleteBy(student!, class_!); |         await classJoinRequestRepository.deleteBy(student!, class_!); | ||||||
| 
 | 
 | ||||||
|         const request = await classJoinRequestRepository.findAllRequestsBy(student!); |         const request = await classJoinRequestRepository.findAllRequestsBy(student!); | ||||||
|  |  | ||||||
|  | @ -2,6 +2,7 @@ import { beforeAll, describe, expect, it } from 'vitest'; | ||||||
| import { ClassRepository } from '../../../src/data/classes/class-repository'; | import { ClassRepository } from '../../../src/data/classes/class-repository'; | ||||||
| import { setupTestApp } from '../../setup-tests'; | import { setupTestApp } from '../../setup-tests'; | ||||||
| import { getClassRepository } from '../../../src/data/repositories'; | import { getClassRepository } from '../../../src/data/repositories'; | ||||||
|  | import {getClass01, getClass04} from "../../test_assets/classes/classes.testdata"; | ||||||
| 
 | 
 | ||||||
| describe('ClassRepository', () => { | describe('ClassRepository', () => { | ||||||
|     let classRepository: ClassRepository; |     let classRepository: ClassRepository; | ||||||
|  | @ -18,16 +19,16 @@ describe('ClassRepository', () => { | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     it('should return requested class', async () => { |     it('should return requested class', async () => { | ||||||
|         const classVar = await classRepository.findById('8764b861-90a6-42e5-9732-c0d9eb2f55f9'); |         const classVar = await classRepository.findById(getClass01().classId); | ||||||
| 
 | 
 | ||||||
|         expect(classVar).toBeTruthy(); |         expect(classVar).toBeTruthy(); | ||||||
|         expect(classVar?.displayName).toBe('class01'); |         expect(classVar?.displayName).toBe('class01'); | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     it('class should be gone after deletion', async () => { |     it('class should be gone after deletion', async () => { | ||||||
|         await classRepository.deleteById('33d03536-83b8-4880-9982-9bbf2f908ddf'); |         await classRepository.deleteById(getClass04().classId); | ||||||
| 
 | 
 | ||||||
|         const classVar = await classRepository.findById('33d03536-83b8-4880-9982-9bbf2f908ddf'); |         const classVar = await classRepository.findById(getClass04().classId); | ||||||
| 
 | 
 | ||||||
|         expect(classVar).toBeNull(); |         expect(classVar).toBeNull(); | ||||||
|     }); |     }); | ||||||
|  |  | ||||||
|  | @ -4,6 +4,7 @@ import { getClassRepository, getTeacherInvitationRepository, getTeacherRepositor | ||||||
| import { TeacherInvitationRepository } from '../../../src/data/classes/teacher-invitation-repository'; | import { TeacherInvitationRepository } from '../../../src/data/classes/teacher-invitation-repository'; | ||||||
| import { TeacherRepository } from '../../../src/data/users/teacher-repository'; | import { TeacherRepository } from '../../../src/data/users/teacher-repository'; | ||||||
| import { ClassRepository } from '../../../src/data/classes/class-repository'; | import { ClassRepository } from '../../../src/data/classes/class-repository'; | ||||||
|  | import {getClass01, getClass02} from "../../test_assets/classes/classes.testdata"; | ||||||
| 
 | 
 | ||||||
| describe('ClassRepository', () => { | describe('ClassRepository', () => { | ||||||
|     let teacherInvitationRepository: TeacherInvitationRepository; |     let teacherInvitationRepository: TeacherInvitationRepository; | ||||||
|  | @ -34,7 +35,7 @@ describe('ClassRepository', () => { | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     it('should return all invitations for a class', async () => { |     it('should return all invitations for a class', async () => { | ||||||
|         const class_ = await classRepository.findById('34d484a1-295f-4e9f-bfdc-3e7a23d86a89'); |         const class_ = await classRepository.findById(getClass02().classId); | ||||||
|         const invitations = await teacherInvitationRepository.findAllInvitationsForClass(class_!); |         const invitations = await teacherInvitationRepository.findAllInvitationsForClass(class_!); | ||||||
| 
 | 
 | ||||||
|         expect(invitations).toBeTruthy(); |         expect(invitations).toBeTruthy(); | ||||||
|  | @ -42,7 +43,7 @@ describe('ClassRepository', () => { | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     it('should not find a removed invitation', async () => { |     it('should not find a removed invitation', async () => { | ||||||
|         const class_ = await classRepository.findById('8764b861-90a6-42e5-9732-c0d9eb2f55f9'); |         const class_ = await classRepository.findById(getClass01().classId); | ||||||
|         const sender = await teacherRepository.findByUsername('FooFighters'); |         const sender = await teacherRepository.findByUsername('FooFighters'); | ||||||
|         const receiver = await teacherRepository.findByUsername('LimpBizkit'); |         const receiver = await teacherRepository.findByUsername('LimpBizkit'); | ||||||
|         await teacherInvitationRepository.deleteBy(class_!, sender!, receiver!); |         await teacherInvitationRepository.deleteBy(class_!, sender!, receiver!); | ||||||
|  |  | ||||||
|  | @ -14,6 +14,7 @@ import { Language } from '@dwengo-1/common/util/language'; | ||||||
| import { Question } from '../../../src/entities/questions/question.entity'; | import { Question } from '../../../src/entities/questions/question.entity'; | ||||||
| import { Class } from '../../../src/entities/classes/class.entity'; | import { Class } from '../../../src/entities/classes/class.entity'; | ||||||
| import { Assignment } from '../../../src/entities/assignments/assignment.entity'; | import { Assignment } from '../../../src/entities/assignments/assignment.entity'; | ||||||
|  | import {getClass01} from "../../test_assets/classes/classes.testdata"; | ||||||
| 
 | 
 | ||||||
| describe('QuestionRepository', () => { | describe('QuestionRepository', () => { | ||||||
|     let questionRepository: QuestionRepository; |     let questionRepository: QuestionRepository; | ||||||
|  | @ -37,7 +38,7 @@ describe('QuestionRepository', () => { | ||||||
|         const id = new LearningObjectIdentifier('id03', Language.English, 1); |         const id = new LearningObjectIdentifier('id03', Language.English, 1); | ||||||
|         const student = await studentRepository.findByUsername('Noordkaap'); |         const student = await studentRepository.findByUsername('Noordkaap'); | ||||||
| 
 | 
 | ||||||
|         const clazz = await getClassRepository().findById('8764b861-90a6-42e5-9732-c0d9eb2f55f9'); |         const clazz = await getClassRepository().findById(getClass01().classId); | ||||||
|         const assignment = await getAssignmentRepository().findByClassAndId(clazz!, 21000); |         const assignment = await getAssignmentRepository().findByClassAndId(clazz!, 21000); | ||||||
|         const group = await getGroupRepository().findByAssignmentAndGroupNumber(assignment!, 21001); |         const group = await getGroupRepository().findByAssignmentAndGroupNumber(assignment!, 21001); | ||||||
|         await questionRepository.createQuestion({ |         await questionRepository.createQuestion({ | ||||||
|  | @ -56,7 +57,7 @@ describe('QuestionRepository', () => { | ||||||
|     let assignment: Assignment | null; |     let assignment: Assignment | null; | ||||||
|     let loId: LearningObjectIdentifier; |     let loId: LearningObjectIdentifier; | ||||||
|     it('should find all questions for a certain learning object and assignment', async () => { |     it('should find all questions for a certain learning object and assignment', async () => { | ||||||
|         clazz = await getClassRepository().findById('8764b861-90a6-42e5-9732-c0d9eb2f55f9'); |         clazz = await getClassRepository().findById(getClass01().classId); | ||||||
|         assignment = await getAssignmentRepository().findByClassAndId(clazz!, 21000); |         assignment = await getAssignmentRepository().findByClassAndId(clazz!, 21000); | ||||||
|         loId = { |         loId = { | ||||||
|             hruid: 'id05', |             hruid: 'id05', | ||||||
|  |  | ||||||
|  | @ -10,7 +10,7 @@ export function makeTestClasses(em: EntityManager, students: Student[], teachers | ||||||
|     const teacherClass01: Teacher[] = teachers.slice(4, 5); |     const teacherClass01: Teacher[] = teachers.slice(4, 5); | ||||||
| 
 | 
 | ||||||
|     class01 = em.create(Class, { |     class01 = em.create(Class, { | ||||||
|         classId: '8764b861-90a6-42e5-9732-c0d9eb2f55f9', |         classId: 'X2J9QT', // 8764b861-90a6-42e5-9732-c0d9eb2f55f9
 | ||||||
|         displayName: 'class01', |         displayName: 'class01', | ||||||
|         teachers: teacherClass01, |         teachers: teacherClass01, | ||||||
|         students: studentsClass01, |         students: studentsClass01, | ||||||
|  | @ -20,7 +20,7 @@ export function makeTestClasses(em: EntityManager, students: Student[], teachers | ||||||
|     const teacherClass02: Teacher[] = teachers.slice(1, 2); |     const teacherClass02: Teacher[] = teachers.slice(1, 2); | ||||||
| 
 | 
 | ||||||
|     class02 = em.create(Class, { |     class02 = em.create(Class, { | ||||||
|         classId: '34d484a1-295f-4e9f-bfdc-3e7a23d86a89', |         classId: '7KLPMA', // 34d484a1-295f-4e9f-bfdc-3e7a23d86a89
 | ||||||
|         displayName: 'class02', |         displayName: 'class02', | ||||||
|         teachers: teacherClass02, |         teachers: teacherClass02, | ||||||
|         students: studentsClass02, |         students: studentsClass02, | ||||||
|  | @ -30,7 +30,7 @@ export function makeTestClasses(em: EntityManager, students: Student[], teachers | ||||||
|     const teacherClass03: Teacher[] = teachers.slice(2, 3); |     const teacherClass03: Teacher[] = teachers.slice(2, 3); | ||||||
| 
 | 
 | ||||||
|     class03 = em.create(Class, { |     class03 = em.create(Class, { | ||||||
|         classId: '80dcc3e0-1811-4091-9361-42c0eee91cfa', |         classId: 'R0D3UZ', // 80dcc3e0-1811-4091-9361-42c0eee91cfa
 | ||||||
|         displayName: 'class03', |         displayName: 'class03', | ||||||
|         teachers: teacherClass03, |         teachers: teacherClass03, | ||||||
|         students: studentsClass03, |         students: studentsClass03, | ||||||
|  | @ -40,14 +40,14 @@ export function makeTestClasses(em: EntityManager, students: Student[], teachers | ||||||
|     const teacherClass04: Teacher[] = teachers.slice(2, 3); |     const teacherClass04: Teacher[] = teachers.slice(2, 3); | ||||||
| 
 | 
 | ||||||
|     class04 = em.create(Class, { |     class04 = em.create(Class, { | ||||||
|         classId: '33d03536-83b8-4880-9982-9bbf2f908ddf', |         classId: 'Q8N5YC', // 33d03536-83b8-4880-9982-9bbf2f908ddf
 | ||||||
|         displayName: 'class04', |         displayName: 'class04', | ||||||
|         teachers: teacherClass04, |         teachers: teacherClass04, | ||||||
|         students: studentsClass04, |         students: studentsClass04, | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     classWithTestleerlingAndTestleerkracht = em.create(Class, { |     classWithTestleerlingAndTestleerkracht = em.create(Class, { | ||||||
|         classId: 'a75298b5-18aa-471d-8eeb-5d77eb989393', |         classId: 'ZAV71B', // a75298b5-18aa-471d-8eeb-5d77eb989393
 | ||||||
|         displayName: 'Testklasse', |         displayName: 'Testklasse', | ||||||
|         teachers: [getTestleerkracht1()], |         teachers: [getTestleerkracht1()], | ||||||
|         students: [getTestleerling1()], |         students: [getTestleerling1()], | ||||||
|  |  | ||||||
|  | @ -1,11 +1,12 @@ | ||||||
| import { describe, it, expect, beforeEach } from "vitest"; | import { describe, it, expect, beforeEach } from "vitest"; | ||||||
| import { AssignmentController } from "../../src/controllers/assignments"; | import { AssignmentController } from "../../src/controllers/assignments"; | ||||||
|  | import {getClass01} from "@dwengo-1/backend/tests/test_assets/classes/classes.testdata"; | ||||||
| 
 | 
 | ||||||
| describe("AssignmentController Tests", () => { | describe("AssignmentController Tests", () => { | ||||||
|     let controller: AssignmentController; |     let controller: AssignmentController; | ||||||
| 
 | 
 | ||||||
|     beforeEach(() => { |     beforeEach(() => { | ||||||
|         controller = new AssignmentController("8764b861-90a6-42e5-9732-c0d9eb2f55f9"); // Example class ID
 |         controller = new AssignmentController(getClass01().classId); // Example class ID
 | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     it("should fetch all assignments", async () => { |     it("should fetch all assignments", async () => { | ||||||
|  |  | ||||||
|  | @ -1,9 +1,10 @@ | ||||||
| import { describe, expect, it } from "vitest"; | import { describe, expect, it } from "vitest"; | ||||||
| import { GroupController } from "../../src/controllers/groups"; | import { GroupController } from "../../src/controllers/groups"; | ||||||
|  | import {getClass01} from "@dwengo-1/backend/tests/test_assets/classes/classes.testdata"; | ||||||
| 
 | 
 | ||||||
| describe("Test controller groups", () => { | describe("Test controller groups", () => { | ||||||
|     it("Get groups", async () => { |     it("Get groups", async () => { | ||||||
|         const classId = "8764b861-90a6-42e5-9732-c0d9eb2f55f9"; |         const classId = getClass01().classId; | ||||||
|         const assignmentNumber = 21000; |         const assignmentNumber = 21000; | ||||||
| 
 | 
 | ||||||
|         const controller = new GroupController(classId, assignmentNumber); |         const controller = new GroupController(classId, assignmentNumber); | ||||||
|  |  | ||||||
|  | @ -1,11 +1,12 @@ | ||||||
| import { describe, expect, it } from "vitest"; | import { describe, expect, it } from "vitest"; | ||||||
| import { SubmissionController } from "../../src/controllers/submissions"; | import { SubmissionController } from "../../src/controllers/submissions"; | ||||||
| import { Language } from "../../src/data-objects/language"; | import { Language } from "../../src/data-objects/language"; | ||||||
|  | import {getClass01} from "@dwengo-1/backend/tests/test_assets/classes/classes.testdata"; | ||||||
| 
 | 
 | ||||||
| describe("Test controller submissions", () => { | describe("Test controller submissions", () => { | ||||||
|     it("Get submission by number", async () => { |     it("Get submission by number", async () => { | ||||||
|         const hruid = "id03"; |         const hruid = "id03"; | ||||||
|         const classId = "8764b861-90a6-42e5-9732-c0d9eb2f55f9"; |         const classId = getClass01().classId; | ||||||
|         const controller = new SubmissionController(hruid); |         const controller = new SubmissionController(hruid); | ||||||
| 
 | 
 | ||||||
|         const data = await controller.getByNumber(Language.English, 1, classId, 1, 1, 1); |         const data = await controller.getByNumber(Language.English, 1, classId, 1, 1, 1); | ||||||
|  |  | ||||||
		Reference in a new issue
	
	 Gabriellvl
						Gabriellvl