test: submission data
This commit is contained in:
		
							parent
							
								
									d16584fb53
								
							
						
					
					
						commit
						5eaa93e18f
					
				
					 2 changed files with 40 additions and 38 deletions
				
			
		|  | @ -10,69 +10,62 @@ import { | ||||||
| } from '../../../src/data/repositories'; | } from '../../../src/data/repositories'; | ||||||
| import { LearningObjectIdentifier } from '../../../src/entities/content/learning-object-identifier'; | import { LearningObjectIdentifier } from '../../../src/entities/content/learning-object-identifier'; | ||||||
| import { Language } from '@dwengo-1/common/util/language'; | import { Language } from '@dwengo-1/common/util/language'; | ||||||
| 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'; |  | ||||||
| import { Submission } from '../../../src/entities/assignments/submission.entity'; | 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, testLearningObject03 } from '../../test_assets/content/learning-objects.testdata'; | ||||||
|  | import { getSubmission01, getSubmission02, getSubmission07, getSubmission08 } from '../../test_assets/assignments/submission.testdata'; | ||||||
|  | import { use } from 'marked'; | ||||||
|  | import { getAssignment01 } from '../../test_assets/assignments/assignments.testdata'; | ||||||
|  | import { getTestGroup02 } from '../../test_assets/assignments/groups.testdata'; | ||||||
| 
 | 
 | ||||||
| describe('SubmissionRepository', () => { | describe('SubmissionRepository', () => { | ||||||
|     let submissionRepository: SubmissionRepository; |     let submissionRepository: SubmissionRepository; | ||||||
|     let studentRepository: StudentRepository; |  | ||||||
|     let groupRepository: GroupRepository; |  | ||||||
|     let assignmentRepository: AssignmentRepository; |  | ||||||
|     let classRepository: ClassRepository; |  | ||||||
| 
 | 
 | ||||||
|     beforeAll(async () => { |     beforeAll(async () => { | ||||||
|         await setupTestApp(); |         await setupTestApp(); | ||||||
|         submissionRepository = getSubmissionRepository(); |         submissionRepository = getSubmissionRepository(); | ||||||
|         studentRepository = getStudentRepository(); |  | ||||||
|         groupRepository = getGroupRepository(); |  | ||||||
|         assignmentRepository = getAssignmentRepository(); |  | ||||||
|         classRepository = getClassRepository(); |  | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     it('should find the requested submission', async () => { |     it('should find the requested submission', async () => { | ||||||
|         const id = new LearningObjectIdentifier('id03', Language.English, 1); |         const usedSubmission = getSubmission01(); | ||||||
|         const submission = await submissionRepository.findSubmissionByLearningObjectAndSubmissionNumber(id, 1); |         const id = new LearningObjectIdentifier(usedSubmission.learningObjectHruid, usedSubmission.learningObjectLanguage, usedSubmission.learningObjectVersion); | ||||||
|  |         const submission = await submissionRepository.findSubmissionByLearningObjectAndSubmissionNumber(id, usedSubmission.submissionNumber!); | ||||||
| 
 | 
 | ||||||
|         expect(submission).toBeTruthy(); |         expect(submission).toBeTruthy(); | ||||||
|         expect(submission?.content).toBe('sub1'); |         expect(submission?.content).toBe(usedSubmission.content); | ||||||
|  |         expect(submission?.submissionNumber).toBe(usedSubmission.submissionNumber); | ||||||
|  |         expect(submission?.submitter.username).toBe(usedSubmission.submitter.username); | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     it('should find the most recent submission for a student', async () => { |     it('should find the most recent submission for a student', async () => { | ||||||
|         const id = new LearningObjectIdentifier('id02', Language.English, 1); |         const usedSubmission = getSubmission02(); | ||||||
|         const student = await studentRepository.findByUsername('Noordkaap'); |         const id = new LearningObjectIdentifier(usedSubmission.learningObjectHruid, usedSubmission.learningObjectLanguage, usedSubmission.learningObjectVersion); | ||||||
|         const submission = await submissionRepository.findMostRecentSubmissionForStudent(id, student!); |          | ||||||
|  |         const submission = await submissionRepository.findMostRecentSubmissionForStudent(id, usedSubmission.submitter!); | ||||||
| 
 | 
 | ||||||
|         expect(submission).toBeTruthy(); |         expect(submission).toBeTruthy(); | ||||||
|         expect(submission?.submissionTime.getDate()).toBe(25); |         expect(submission?.submissionTime).toStrictEqual(usedSubmission.submissionTime); | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     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 usedSubmission = getSubmission02(); | ||||||
|         const class_ = await classRepository.findById('8764b861-90a6-42e5-9732-c0d9eb2f55f9'); |         const id = new LearningObjectIdentifier(usedSubmission.learningObjectHruid, usedSubmission.learningObjectLanguage, usedSubmission.learningObjectVersion); | ||||||
|         const assignment = await assignmentRepository.findByClassAndId(class_!, 21000); |          | ||||||
|         const group = await groupRepository.findByAssignmentAndGroupNumber(assignment!, 21001); |         const submission = await submissionRepository.findMostRecentSubmissionForGroup(id, usedSubmission.onBehalfOf); | ||||||
|         const submission = await submissionRepository.findMostRecentSubmissionForGroup(id, group!); |  | ||||||
| 
 | 
 | ||||||
|         expect(submission).toBeTruthy(); |         expect(submission).toBeTruthy(); | ||||||
|         expect(submission?.submissionTime.getDate()).toBe(25); |         expect(submission?.submissionTime).toStrictEqual(usedSubmission.submissionTime); | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     let clazz: Class | null; |  | ||||||
|     let assignment: Assignment | null; |  | ||||||
|     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'); |         const usedSubmission = getSubmission08(); | ||||||
|         assignment = await assignmentRepository.findByClassAndId(clazz!, 21000); |         const assignment = getAssignment01(); | ||||||
|         loId = { |          | ||||||
|             hruid: 'id02', |         const loId = { | ||||||
|             language: Language.English, |             hruid: usedSubmission.learningObjectHruid, | ||||||
|             version: 1, |             language: usedSubmission.learningObjectLanguage, | ||||||
|  |             version: usedSubmission.learningObjectVersion, | ||||||
|         }; |         }; | ||||||
|         const result = await submissionRepository.findAllSubmissionsForLearningObjectAndAssignment(loId, assignment!); |         const result = await submissionRepository.findAllSubmissionsForLearningObjectAndAssignment(loId, assignment!); | ||||||
|         sortSubmissions(result); |         sortSubmissions(result); | ||||||
|  | @ -93,7 +86,14 @@ describe('SubmissionRepository', () => { | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     it('should find only the submissions for a certain learning object and assignment made for the given group', async () => { |     it('should find only the submissions for a certain learning object and assignment made for the given group', async () => { | ||||||
|         const group = await groupRepository.findByAssignmentAndGroupNumber(assignment!, 21002); |         const group = getTestGroup02(); | ||||||
|  |         const usedSubmission = getSubmission08(); | ||||||
|  |         const loId = { | ||||||
|  |             hruid: usedSubmission.learningObjectHruid, | ||||||
|  |             language: usedSubmission.learningObjectLanguage, | ||||||
|  |             version: usedSubmission.learningObjectVersion, | ||||||
|  |         }; | ||||||
|  | 
 | ||||||
|         const result = await submissionRepository.findAllSubmissionsForLearningObjectAndGroup(loId, group!); |         const result = await submissionRepository.findAllSubmissionsForLearningObjectAndGroup(loId, group!); | ||||||
| 
 | 
 | ||||||
|         expect(result).toHaveLength(1); |         expect(result).toHaveLength(1); | ||||||
|  | @ -107,10 +107,11 @@ describe('SubmissionRepository', () => { | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     it('should not find a deleted submission', async () => { |     it('should not find a deleted submission', async () => { | ||||||
|  |         const usedSubmission = getSubmission07(); | ||||||
|         const id = new LearningObjectIdentifier(testLearningObject01.hruid, testLearningObject01.language, testLearningObject01.version); |         const id = new LearningObjectIdentifier(testLearningObject01.hruid, testLearningObject01.language, testLearningObject01.version); | ||||||
|         await submissionRepository.deleteSubmissionByLearningObjectAndSubmissionNumber(id, 1); |         await submissionRepository.deleteSubmissionByLearningObjectAndSubmissionNumber(id, usedSubmission.submissionNumber!); | ||||||
| 
 | 
 | ||||||
|         const submission = await submissionRepository.findSubmissionByLearningObjectAndSubmissionNumber(id, 1); |         const submission = await submissionRepository.findSubmissionByLearningObjectAndSubmissionNumber(id, usedSubmission.submissionNumber!); | ||||||
| 
 | 
 | ||||||
|         expect(submission).toBeNull(); |         expect(submission).toBeNull(); | ||||||
|     }); |     }); | ||||||
|  |  | ||||||
|  | @ -71,6 +71,7 @@ export function makeTestSubmissions(em: EntityManager): Submission[] { | ||||||
|         content: '', |         content: '', | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|  |     // gets deleted
 | ||||||
|     submission07 = em.create(Submission, { |     submission07 = em.create(Submission, { | ||||||
|         learningObjectHruid: testLearningObject01.hruid, |         learningObjectHruid: testLearningObject01.hruid, | ||||||
|         learningObjectLanguage: testLearningObject01.language, |         learningObjectLanguage: testLearningObject01.language, | ||||||
|  |  | ||||||
		Reference in a new issue
	
	 laurejablonski
						laurejablonski