Skip to content

Commit

Permalink
Frontend tests fix (#375)
Browse files Browse the repository at this point in the history
* test: extraCheckResult type

* test: structureCheckResult type

* test: submission type

* test: fix submission JSON test

* fix: linting errors
  • Loading branch information
francisvaut authored and DeLany123 committed Apr 28, 2024
1 parent 5a5ebda commit 020006d
Show file tree
Hide file tree
Showing 5 changed files with 137 additions and 18 deletions.
25 changes: 22 additions & 3 deletions frontend/src/test/unit/types/data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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',
};
34 changes: 34 additions & 0 deletions frontend/src/test/unit/types/extraCheckResults.test.ts
Original file line number Diff line number Diff line change
@@ -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);
});
});
33 changes: 29 additions & 4 deletions frontend/src/test/unit/types/helper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down Expand Up @@ -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,
);
}
32 changes: 32 additions & 0 deletions frontend/src/test/unit/types/structureCheckResult.test.ts
Original file line number Diff line number Diff line change
@@ -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);
});
});
31 changes: 20 additions & 11 deletions frontend/src/test/unit/types/submission.test.ts
Original file line number Diff line number Diff line change
@@ -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';
Expand All @@ -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);
});
});
*/

0 comments on commit 020006d

Please sign in to comment.