test: testen voor submission slagen
This commit is contained in:
		
							parent
							
								
									ca5bc512d6
								
							
						
					
					
						commit
						0a1bc7c6ea
					
				
					 2 changed files with 150 additions and 47 deletions
				
			
		
							
								
								
									
										98
									
								
								backend/tests/data/submissions.test.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								backend/tests/data/submissions.test.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,98 @@ | ||||||
|  | import { beforeAll, describe, expect, it } from 'vitest'; | ||||||
|  | import { setupTestApp } from '../setup-tests'; | ||||||
|  | import { SubmissionRepository } from '../../src/data/assignments/submission-repository'; | ||||||
|  | import { | ||||||
|  |     getAssignmentRepository, | ||||||
|  |     getClassRepository, | ||||||
|  |     getGroupRepository, | ||||||
|  |     getStudentRepository, | ||||||
|  |     getSubmissionRepository, | ||||||
|  | } from '../../src/data/repositories'; | ||||||
|  | import { LearningObject } from '../../src/entities/content/learning-object.entity'; | ||||||
|  | import { LearningObjectIdentifier } from '../../src/entities/content/learning-object-identifier'; | ||||||
|  | import { Language } from '../../src/entities/content/language'; | ||||||
|  | import { subscribe } from 'diagnostics_channel'; | ||||||
|  | import { Student } from '../../src/entities/users/student.entity'; | ||||||
|  | import { StudentRepository } from '../../src/data/users/student-repository'; | ||||||
|  | import { GroupRepository } from '../../src/data/assignments/group-repository'; | ||||||
|  | import { AssignmentRepository } from '../../src/data/assignments/assignment-repository'; | ||||||
|  | import { ClassRepository } from '../../src/data/classes/class-repository'; | ||||||
|  | 
 | ||||||
|  | describe('SubmissionRepository', () => { | ||||||
|  |     let SubmissionRepository: SubmissionRepository; | ||||||
|  |     let StudentRepository: StudentRepository; | ||||||
|  |     let GroupRepository: GroupRepository; | ||||||
|  |     let AssignmentRepository: AssignmentRepository; | ||||||
|  |     let ClassRepository: ClassRepository; | ||||||
|  | 
 | ||||||
|  |     beforeAll(async () => { | ||||||
|  |         await setupTestApp(); | ||||||
|  |         SubmissionRepository = getSubmissionRepository(); | ||||||
|  |         StudentRepository = getStudentRepository(); | ||||||
|  |         GroupRepository = getGroupRepository(); | ||||||
|  |         AssignmentRepository = getAssignmentRepository(); | ||||||
|  |         ClassRepository = getClassRepository(); | ||||||
|  |     }); | ||||||
|  | 
 | ||||||
|  |     it('should find the requested submission', async () => { | ||||||
|  |         const id = new LearningObjectIdentifier('id03', Language.English, '1'); | ||||||
|  |         const submission = | ||||||
|  |             await SubmissionRepository.findSubmissionByLearningObjectAndSubmissionNumber( | ||||||
|  |                 id, | ||||||
|  |                 1 | ||||||
|  |             ); | ||||||
|  | 
 | ||||||
|  |         expect(submission).toBeTruthy(); | ||||||
|  |         expect(submission?.content).toBe('sub1'); | ||||||
|  |     }); | ||||||
|  | 
 | ||||||
|  |     it('should find the most recent submission for a student', async () => { | ||||||
|  |         const id = new LearningObjectIdentifier('id02', Language.English, '1'); | ||||||
|  |         const student = await StudentRepository.findByUsername('Noordkaap'); | ||||||
|  |         const submission = | ||||||
|  |             await SubmissionRepository.findMostRecentSubmissionForStudent( | ||||||
|  |                 id, | ||||||
|  |                 student! | ||||||
|  |             ); | ||||||
|  | 
 | ||||||
|  |         expect(submission).toBeTruthy(); | ||||||
|  |         expect(submission?.submissionTime.getDate()).toBe(25); | ||||||
|  |     }); | ||||||
|  | 
 | ||||||
|  |     it('should find the most recent submission for a group', async () => { | ||||||
|  |         const id = new LearningObjectIdentifier('id03', Language.English, '1'); | ||||||
|  |         const class_ = await ClassRepository.findById('id01'); | ||||||
|  |         const assignment = await AssignmentRepository.findByClassAndId( | ||||||
|  |             class_!, | ||||||
|  |             1 | ||||||
|  |         ); | ||||||
|  |         const group = await GroupRepository.findByAssignmentAndGroupNumber( | ||||||
|  |             assignment!, | ||||||
|  |             1 | ||||||
|  |         ); | ||||||
|  |         const submission = | ||||||
|  |             await SubmissionRepository.findMostRecentSubmissionForGroup( | ||||||
|  |                 id, | ||||||
|  |                 group! | ||||||
|  |             ); | ||||||
|  | 
 | ||||||
|  |         expect(submission).toBeTruthy(); | ||||||
|  |         expect(submission?.submissionTime.getDate()).toBe(25); | ||||||
|  |     }); | ||||||
|  | 
 | ||||||
|  |     it('should not find a deleted submission', async () => { | ||||||
|  |         const id = new LearningObjectIdentifier('id01', Language.English, '1'); | ||||||
|  |         await SubmissionRepository.deleteSubmissionByLearningObjectAndSubmissionNumber( | ||||||
|  |             id, | ||||||
|  |             1 | ||||||
|  |         ); | ||||||
|  | 
 | ||||||
|  |         const submission = | ||||||
|  |             await SubmissionRepository.findSubmissionByLearningObjectAndSubmissionNumber( | ||||||
|  |                 id, | ||||||
|  |                 1 | ||||||
|  |             ); | ||||||
|  | 
 | ||||||
|  |         expect(submission).toBeNull(); | ||||||
|  |     }); | ||||||
|  | }); | ||||||
|  | @ -540,57 +540,57 @@ export async function setupTestApp() { | ||||||
|         content: 'answer', |         content: 'answer', | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     // const submission01 = em.create(Submission, {
 |     const submission01 = em.create(Submission, { | ||||||
|     //     learningObjectHruid: 'id03',
 |         learningObjectHruid: 'id03', | ||||||
|     //     learningObjectLanguage: Language.English,
 |         learningObjectLanguage: Language.English, | ||||||
|     //     learningObjectVersion: '1',
 |         learningObjectVersion: '1', | ||||||
|     //     submissionNumber: 1,
 |         submissionNumber: 1, | ||||||
|     //     submitter: student01,
 |         submitter: student01, | ||||||
|     //     submissionTime: new Date(2025, 2, 20),
 |         submissionTime: new Date(2025, 2, 20), | ||||||
|     //     onBehalfOf: group01,
 |         onBehalfOf: group01, | ||||||
|     //     content: '',
 |         content: 'sub1', | ||||||
|     // });
 |     }); | ||||||
| 
 | 
 | ||||||
|     // const submission02 = em.create(Submission, {
 |     const submission02 = em.create(Submission, { | ||||||
|     //     learningObjectHruid: 'id03',
 |         learningObjectHruid: 'id03', | ||||||
|     //     learningObjectLanguage: Language.English,
 |         learningObjectLanguage: Language.English, | ||||||
|     //     learningObjectVersion: '1',
 |         learningObjectVersion: '1', | ||||||
|     //     submissionNumber: 1,
 |         submissionNumber: 2, | ||||||
|     //     submitter: student01,
 |         submitter: student01, | ||||||
|     //     submissionTime: new Date(2025, 2, 25),
 |         submissionTime: new Date(2025, 2, 25), | ||||||
|     //     onBehalfOf: group01,
 |         onBehalfOf: group01, | ||||||
|     //     content: '',
 |         content: '', | ||||||
|     // });
 |     }); | ||||||
| 
 | 
 | ||||||
|     // const submission03 = em.create(Submission, {
 |     const submission03 = em.create(Submission, { | ||||||
|     //     learningObjectHruid: 'id02',
 |         learningObjectHruid: 'id02', | ||||||
|     //     learningObjectLanguage: Language.English,
 |         learningObjectLanguage: Language.English, | ||||||
|     //     learningObjectVersion: '1',
 |         learningObjectVersion: '1', | ||||||
|     //     submissionNumber: 1,
 |         submissionNumber: 1, | ||||||
|     //     submitter: student01,
 |         submitter: student01, | ||||||
|     //     submissionTime: new Date(2025, 2, 20),
 |         submissionTime: new Date(2025, 2, 20), | ||||||
|     //     content: '',
 |         content: '', | ||||||
|     // });
 |     }); | ||||||
| 
 | 
 | ||||||
|     // const submission04 = em.create(Submission, {
 |     const submission04 = em.create(Submission, { | ||||||
|     //     learningObjectHruid: 'id02',
 |         learningObjectHruid: 'id02', | ||||||
|     //     learningObjectLanguage: Language.English,
 |         learningObjectLanguage: Language.English, | ||||||
|     //     learningObjectVersion: '1',
 |         learningObjectVersion: '1', | ||||||
|     //     submissionNumber: 1,
 |         submissionNumber: 2, | ||||||
|     //     submitter: student01,
 |         submitter: student01, | ||||||
|     //     submissionTime: new Date(2025, 2, 25),
 |         submissionTime: new Date(2025, 2, 25), | ||||||
|     //     content: '',
 |         content: '', | ||||||
|     // });
 |     }); | ||||||
| 
 | 
 | ||||||
|     // const submission05 = em.create(Submission, {
 |     const submission05 = em.create(Submission, { | ||||||
|     //     learningObjectHruid: 'id01',
 |         learningObjectHruid: 'id01', | ||||||
|     //     learningObjectLanguage: Language.English,
 |         learningObjectLanguage: Language.English, | ||||||
|     //     learningObjectVersion: '1',
 |         learningObjectVersion: '1', | ||||||
|     //     submissionNumber: 1,
 |         submissionNumber: 1, | ||||||
|     //     submitter: student02,
 |         submitter: student02, | ||||||
|     //     submissionTime: new Date(2025, 2, 20),
 |         submissionTime: new Date(2025, 2, 20), | ||||||
|     //     content: '',
 |         content: '', | ||||||
|     // });
 |     }); | ||||||
| 
 | 
 | ||||||
|     await em.persistAndFlush([ |     await em.persistAndFlush([ | ||||||
|         student01, |         student01, | ||||||
|  | @ -638,5 +638,10 @@ export async function setupTestApp() { | ||||||
|         answer01, |         answer01, | ||||||
|         answer02, |         answer02, | ||||||
|         answer03, |         answer03, | ||||||
|  |         submission01, | ||||||
|  |         submission02, | ||||||
|  |         submission03, | ||||||
|  |         submission04, | ||||||
|  |         submission05, | ||||||
|     ]); |     ]); | ||||||
| } | } | ||||||
|  |  | ||||||
		Reference in a new issue
	
	 Laure Jablonski
						Laure Jablonski