diff --git a/frontend/src/test/unit/types/data.ts b/frontend/src/test/unit/types/data.ts index 7c5ced73..e504545b 100644 --- a/frontend/src/test/unit/types/data.ts +++ b/frontend/src/test/unit/types/data.ts @@ -128,8 +128,27 @@ export const submissionData = { id: 'submission1_id', submission_number: 1, submission_time: new Date('November 1, 2024 04:20:00'), - structure_checks_passed: true, - group: null, files: [], - extra_checks_results: [], + extra_check_results: [], + structure_check_results: [], + is_valid: true, +}; + +export const extraCheckResultData = { + id: 'extraCheckResult1_id', + result: 'extraCheckResult1_result', + error_message: 'extraCheckResult1_error_message', + log_file: null, + submission: 1, + extra_check: 1, + resourcetype: 'extraCheckResult1_resourcetype', +}; + +export const structureCheckResultData = { + id: 'structureCheckResult1_id', + result: 'structureCheckResult1_result', + error_message: 'structureCheckResult1_error_message', + submission: 1, + structure_check: 1, + resourcetype: 'structureCheckResult1_resourcetype', }; diff --git a/frontend/src/test/unit/types/extraCheckResults.test.ts b/frontend/src/test/unit/types/extraCheckResults.test.ts new file mode 100644 index 00000000..448b73c5 --- /dev/null +++ b/frontend/src/test/unit/types/extraCheckResults.test.ts @@ -0,0 +1,34 @@ +import { describe, it, expect } from 'vitest'; + +import { ExtraCheckResult } from '@/types/submission/ExtraCheckResult'; +import { extraCheckResultData } from './data'; +import { createExtraCheckResult } from './helper'; + +describe('extraCheckResult type', () => { + it('create instance of extraCheckResult with correct properties', () => { + const extraCheckResult = createExtraCheckResult(extraCheckResultData); + + expect(extraCheckResult).toBeInstanceOf(ExtraCheckResult); + expect(extraCheckResult.id).toBe(extraCheckResultData.id); + expect(extraCheckResult.result).toBe(extraCheckResultData.result); + expect(extraCheckResult.error_message).toBe(extraCheckResultData.error_message); + expect(extraCheckResult.log_file).toStrictEqual(extraCheckResultData.log_file); + expect(extraCheckResult.submission).toBe(extraCheckResultData.submission); + expect(extraCheckResult.extra_check).toBe(extraCheckResultData.extra_check); + expect(extraCheckResult.resourcetype).toBe(extraCheckResultData.resourcetype); + }); + + it('create an extraCheckResult instance from JSON data', () => { + const extraCheckResultJSON = { ...extraCheckResultData }; + const extraCheckResult = ExtraCheckResult.fromJSON(extraCheckResultJSON); + + expect(extraCheckResult).toBeInstanceOf(ExtraCheckResult); + expect(extraCheckResult.id).toBe(extraCheckResultData.id); + expect(extraCheckResult.result).toBe(extraCheckResultData.result); + expect(extraCheckResult.error_message).toBe(extraCheckResultData.error_message); + expect(extraCheckResult.log_file).toStrictEqual(extraCheckResultData.log_file); + expect(extraCheckResult.submission).toBe(extraCheckResultData.submission); + expect(extraCheckResult.extra_check).toBe(extraCheckResultData.extra_check); + expect(extraCheckResult.resourcetype).toBe(extraCheckResultData.resourcetype); + }); +}); diff --git a/frontend/src/test/unit/types/helper.ts b/frontend/src/test/unit/types/helper.ts index b184cdb6..d6999ddf 100644 --- a/frontend/src/test/unit/types/helper.ts +++ b/frontend/src/test/unit/types/helper.ts @@ -10,7 +10,9 @@ import { Project } from '@/types/Project'; import { Response } from '@/types/Response'; import { StructureCheck } from '@/types/StructureCheck'; import { SubmissionStatus } from '@/types/SubmisionStatus'; -import { Submission } from '@/types/submission/Submission.ts'; +import { Submission } from '@/types/submission/Submission'; +import { ExtraCheckResult } from '@/types/submission/ExtraCheckResult.ts'; +import { StructureCheckResult } from '@/types/submission/StructureCheckResult'; export function createStudent(studentData: any): Student { return new Student( @@ -160,9 +162,32 @@ export function createSubmission(submissionData: any): Submission { submissionData.id, submissionData.submission_number, submissionData.submission_time, - submissionData.structure_checks_passed, - submissionData.group, submissionData.files.slice(), - submissionData.extra_checks_results.slice(), + submissionData.extra_check_results.slice(), + submissionData.structure_check_results.slice(), + submissionData.is_valid, + ); +} + +export function createExtraCheckResult(extraCheckResultData: any): ExtraCheckResult { + return new ExtraCheckResult( + extraCheckResultData.id, + extraCheckResultData.result, + extraCheckResultData.error_message, + extraCheckResultData.log_file, + extraCheckResultData.submission, + extraCheckResultData.extra_check, + extraCheckResultData.resourcetype, + ); +} + +export function createStructureCheckResult(structureCheckResultData: any): StructureCheckResult { + return new StructureCheckResult( + structureCheckResultData.id, + structureCheckResultData.result, + structureCheckResultData.error_message, + structureCheckResultData.submission, + structureCheckResultData.structure_check, + structureCheckResultData.resourcetype, ); } diff --git a/frontend/src/test/unit/types/structureCheckResult.test.ts b/frontend/src/test/unit/types/structureCheckResult.test.ts new file mode 100644 index 00000000..7e9c689d --- /dev/null +++ b/frontend/src/test/unit/types/structureCheckResult.test.ts @@ -0,0 +1,32 @@ +import { describe, it, expect } from 'vitest'; + +import { StructureCheckResult } from '@/types/submission/StructureCheckResult'; +import { structureCheckResultData } from './data'; +import { createStructureCheckResult } from './helper'; + +describe('structureCheckResult type', () => { + it('create instance of structureCheckData with correct properties', () => { + const structureCheckResult = createStructureCheckResult(structureCheckResultData); + + expect(structureCheckResult).toBeInstanceOf(StructureCheckResult); + expect(structureCheckResult.id).toBe(structureCheckResultData.id); + expect(structureCheckResult.result).toBe(structureCheckResultData.result); + expect(structureCheckResult.error_message).toBe(structureCheckResultData.error_message); + expect(structureCheckResult.submission).toBe(structureCheckResultData.submission); + expect(structureCheckResult.structure_check).toBe(structureCheckResultData.structure_check); + expect(structureCheckResult.resourcetype).toBe(structureCheckResultData.resourcetype); + }); + + it('create a structureCheckResult instance from JSON data', () => { + const structureCheckResultJSON = { ...structureCheckResultData }; + const structureCheckResult = StructureCheckResult.fromJSON(structureCheckResultJSON); + + expect(structureCheckResult).toBeInstanceOf(StructureCheckResult); + expect(structureCheckResult.id).toBe(structureCheckResultData.id); + expect(structureCheckResult.result).toBe(structureCheckResultData.result); + expect(structureCheckResult.error_message).toBe(structureCheckResultData.error_message); + expect(structureCheckResult.submission).toBe(structureCheckResultData.submission); + expect(structureCheckResult.structure_check).toBe(structureCheckResultData.structure_check); + expect(structureCheckResult.resourcetype).toBe(structureCheckResultData.resourcetype); + }); +}); diff --git a/frontend/src/test/unit/types/submission.test.ts b/frontend/src/test/unit/types/submission.test.ts index 6eeb9471..7395d0e6 100644 --- a/frontend/src/test/unit/types/submission.test.ts +++ b/frontend/src/test/unit/types/submission.test.ts @@ -1,8 +1,5 @@ -import { describe, it } from 'vitest'; -describe('submissions', (): void => { - it('gets submissions data by id', async () => {}); -}); -/* +import { describe, it, expect } from 'vitest'; + import { Submission } from '@/types/submission/Submission.ts'; import { submissionData } from './data'; import { createSubmission } from './helper'; @@ -13,21 +10,33 @@ describe('submission type', () => { expect(submission).toBeInstanceOf(Submission); expect(submission.id).toBe(submissionData.id); - expect(submission.submission_number).toBe(submissionData.submission_number); + expect(submission.submission_number).toStrictEqual(submissionData.submission_number); expect(submission.submission_time).toStrictEqual(submissionData.submission_time); expect(submission.files).toStrictEqual(submissionData.files); + expect(submission.extraCheckResults).toStrictEqual(submissionData.extra_check_results); + expect(submission.structureCheckResults).toStrictEqual(submissionData.structure_check_results); + expect(submission.is_valid).toBe(submissionData.is_valid); }); it('create a submission instance from JSON data', () => { - const submissionJSON = { ...submissionData }; - const submission = Submission.fromJSONCreate(submissionJSON); + const responseSubmissionJSON = { + id: 'submission1_id', + submission_number: 1, + submission_time: new Date('November 1, 2024 04:20:00'), + files: [], + results: [], + is_valid: true, + }; + + const submission = Submission.fromJSON(responseSubmissionJSON); expect(submission).toBeInstanceOf(Submission); expect(submission.id).toBe(submissionData.id); - expect(submission.submission_number).toBe(submissionData.submission_number); + expect(submission.submission_number).toStrictEqual(submissionData.submission_number); expect(submission.submission_time).toStrictEqual(submissionData.submission_time); expect(submission.files).toStrictEqual(submissionData.files); + expect(submission.extraCheckResults).toStrictEqual([]); + expect(submission.structureCheckResults).toStrictEqual([]); + expect(submission.is_valid).toBe(submissionData.is_valid); }); - }); - */