From 7a443c06868b3d03443e5c30470a4abf86c5d214 Mon Sep 17 00:00:00 2001 From: Adriaan Jacquet Date: Sat, 29 Mar 2025 21:56:56 +0100 Subject: [PATCH] feat: testen voor submissions geimplementeerd --- .../data/assignments/submission-repository.ts | 15 +++++++++------ backend/tests/controllers/qol.ts | 10 +++++++--- backend/tests/controllers/submissions.test.ts | 16 +++++++++++----- 3 files changed, 27 insertions(+), 14 deletions(-) diff --git a/backend/src/data/assignments/submission-repository.ts b/backend/src/data/assignments/submission-repository.ts index e7b51e13..96f196f6 100644 --- a/backend/src/data/assignments/submission-repository.ts +++ b/backend/src/data/assignments/submission-repository.ts @@ -6,12 +6,15 @@ import { Student } from '../../entities/users/student.entity.js'; export class SubmissionRepository extends DwengoEntityRepository { public findSubmissionByLearningObjectAndSubmissionNumber(loId: LearningObjectIdentifier, submissionNumber: number): Promise { - return this.findOne({ - learningObjectHruid: loId.hruid, - learningObjectLanguage: loId.language, - learningObjectVersion: loId.version, - submissionNumber: submissionNumber, - }); + return this.findOne( + { + learningObjectHruid: loId.hruid, + learningObjectLanguage: loId.language, + learningObjectVersion: loId.version, + submissionNumber: submissionNumber, + }, + { populate: ['submitter', 'onBehalfOf'] }, + ); } public findSubmissionsByLearningObject(loId: LearningObjectIdentifier): Promise { diff --git a/backend/tests/controllers/qol.ts b/backend/tests/controllers/qol.ts index 984b7c58..08f73f79 100644 --- a/backend/tests/controllers/qol.ts +++ b/backend/tests/controllers/qol.ts @@ -1,12 +1,16 @@ -export function checkReturnList(jsonMock: Mock, listName: string) { +export function checkReturnList(jsonMock: Mock, listName: string, length?: number) { expect(jsonMock).toHaveBeenCalled(); const result = jsonMock.mock.lastCall![0]; expect(listName in result).toBeTruthy(); + + if (length) { + expect(result[listName].length).toBe(length); + } } export function checkReturn404(jsonMock: Mock, statusMock: Mock) { - expect(statusMock).toHaveBeenCalledWith(404); - expect(jsonMock).toHaveBeenCalled(); + expect(statusMock).toHaveBeenCalledWith(404); + expect(jsonMock).toHaveBeenCalled(); } diff --git a/backend/tests/controllers/submissions.test.ts b/backend/tests/controllers/submissions.test.ts index 442f81c5..20e69847 100644 --- a/backend/tests/controllers/submissions.test.ts +++ b/backend/tests/controllers/submissions.test.ts @@ -1,8 +1,10 @@ import { setupTestApp } from '../setup-tests.js'; import { describe, it, expect, beforeAll, beforeEach, vi, Mock } from 'vitest'; -import { getSubmissionHandler } from '../../src/controllers/submissions.js'; +import { getSubmissionHandler, getAllSubmissionsHandler } from '../../src/controllers/submissions.js'; import { Request, Response } from 'express'; import { checkReturn404, checkReturnList } from './qol.js'; +import { getSubmission } from '../../src/services/submissions.js'; +import { Language } from '../../src/entities/content/language.js'; function createRequestObject(hruid: string, submissionNumber: string) { @@ -12,7 +14,7 @@ function createRequestObject(hruid: string, submissionNumber: string) { id: submissionNumber, }, query: { - language: 'nl', + language: 'en', version: '1', }, } @@ -60,13 +62,17 @@ describe('Submission controllers', () => { await getSubmissionHandler(req as Request, res as Response); - console.log(jsonMock.mock.lastCall![0]); - // TODO + const expectedResult = await getSubmission('id01', Language.English, 1, 1); + + expect(jsonMock.mock.lastCall![0]).toStrictEqual(expectedResult); }); it('should return a list of submissions for a learning object', async () => { - req = createRequestObject('id01', 'irrelevant'); + req = createRequestObject('id02', 'irrelevant'); + await getAllSubmissionsHandler(req as Request, res as Response); + + checkReturnList(jsonMock, 'submissions', 2); }); });