Skip to content

Commit 1873245

Browse files
committed
♻️ Split tests (#1631)
1 parent 7ac2761 commit 1873245

File tree

2 files changed

+102
-103
lines changed

2 files changed

+102
-103
lines changed

src/test/lib/utils/task.test.ts

Lines changed: 0 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,10 @@ import {
2020
compareByContestIdAndTaskId,
2121
removeTaskIndexFromTitle,
2222
getTaskTableHeaderName,
23-
toChangeTextColorIfNeeds,
24-
getTaskGradeLabel,
25-
toChangeBorderColorIfNeeds,
2623
} from '$lib/utils/task';
2724
import type { WorkBookTaskBase } from '$lib/types/workbook';
2825
import { ContestType } from '$lib/types/contest';
2926
import { type TaskResult, type TaskResults } from '$lib/types/task';
30-
import { TaskGrade } from '@prisma/client';
3127

3228
type TestCaseForTaskResults = {
3329
taskResults: TaskResults;
@@ -68,13 +64,6 @@ type TestCaseForTaskTableHeaderName = {
6864

6965
type TestCasesForTaskTableHeaderName = TestCaseForTaskTableHeaderName[];
7066

71-
type TestCaseForTaskGrade = {
72-
taskGrade: TaskGrade;
73-
expected: string;
74-
};
75-
76-
type TestCasesForTaskGrade = TestCaseForTaskGrade[];
77-
7867
describe('Task', () => {
7968
describe('task url', () => {
8069
describe('when contest ids and task ids for AtCoder are given', () => {
@@ -699,96 +688,4 @@ describe('Task', () => {
699688
);
700689
});
701690
});
702-
703-
describe('to change text color if needs', () => {
704-
describe('when task grades from 11Q to 1Q are given ', () => {
705-
const testCases: TestCasesForTaskGrade = [
706-
{ taskGrade: TaskGrade.Q11, expected: 'text-black' },
707-
{ taskGrade: TaskGrade.Q10, expected: 'text-black' },
708-
{ taskGrade: TaskGrade.Q6, expected: 'text-black' },
709-
{ taskGrade: TaskGrade.Q5, expected: 'text-black' },
710-
{ taskGrade: TaskGrade.Q2, expected: 'text-black' },
711-
{ taskGrade: TaskGrade.Q1, expected: 'text-black' },
712-
];
713-
714-
runTests(
715-
'toChangeTextColorIfNeeds',
716-
testCases,
717-
({ taskGrade, expected }: TestCaseForTaskGrade) => {
718-
expect(toChangeTextColorIfNeeds(getTaskGradeLabel(taskGrade))).toBe(expected);
719-
},
720-
);
721-
});
722-
723-
describe('when task grades from 1D to 5D are given', () => {
724-
const testCases: TestCasesForTaskGrade = [
725-
{ taskGrade: TaskGrade.D1, expected: 'text-white' },
726-
{ taskGrade: TaskGrade.D2, expected: 'text-white' },
727-
{ taskGrade: TaskGrade.D3, expected: 'text-white' },
728-
{ taskGrade: TaskGrade.D4, expected: 'text-white' },
729-
{ taskGrade: TaskGrade.D5, expected: 'text-white' },
730-
];
731-
732-
runTests(
733-
'toChangeTextColorIfNeeds',
734-
testCases,
735-
({ taskGrade, expected }: TestCaseForTaskGrade) => {
736-
expect(toChangeTextColorIfNeeds(getTaskGradeLabel(taskGrade))).toBe(expected);
737-
},
738-
);
739-
});
740-
741-
describe('when task grades 6D is given', () => {
742-
const testCases: TestCasesForTaskGrade = [
743-
{ taskGrade: TaskGrade.D6, expected: 'text-atcoder-bronze' },
744-
];
745-
746-
runTests(
747-
'toChangeTextColorIfNeeds',
748-
testCases,
749-
({ taskGrade, expected }: TestCaseForTaskGrade) => {
750-
expect(toChangeTextColorIfNeeds(getTaskGradeLabel(taskGrade))).toBe(expected);
751-
},
752-
);
753-
});
754-
});
755-
756-
describe('to change border color if needs', () => {
757-
describe('when task grades from 11Q to 5D are given', () => {
758-
const testCases: TestCasesForTaskGrade = [
759-
{ taskGrade: TaskGrade.Q11, expected: 'border-white' },
760-
{ taskGrade: TaskGrade.Q10, expected: 'border-white' },
761-
{ taskGrade: TaskGrade.Q7, expected: 'border-white' },
762-
{ taskGrade: TaskGrade.Q6, expected: 'border-white' },
763-
{ taskGrade: TaskGrade.Q2, expected: 'border-white' },
764-
{ taskGrade: TaskGrade.Q1, expected: 'border-white' },
765-
{ taskGrade: TaskGrade.D1, expected: 'border-white' },
766-
{ taskGrade: TaskGrade.D2, expected: 'border-white' },
767-
{ taskGrade: TaskGrade.D4, expected: 'border-white' },
768-
{ taskGrade: TaskGrade.D5, expected: 'border-white' },
769-
];
770-
771-
runTests(
772-
'toChangeBorderColorIfNeeds',
773-
testCases,
774-
({ taskGrade, expected }: TestCaseForTaskGrade) => {
775-
expect(toChangeBorderColorIfNeeds(getTaskGradeLabel(taskGrade))).toBe(expected);
776-
},
777-
);
778-
});
779-
780-
describe('when task grade 6D is given ', () => {
781-
const testCases: TestCasesForTaskGrade = [
782-
{ taskGrade: TaskGrade.D6, expected: 'border-atcoder-bronze' },
783-
];
784-
785-
runTests(
786-
'toChangeBorderColorIfNeeds',
787-
testCases,
788-
({ taskGrade, expected }: TestCaseForTaskGrade) => {
789-
expect(toChangeBorderColorIfNeeds(getTaskGradeLabel(taskGrade))).toBe(expected);
790-
},
791-
);
792-
});
793-
});
794691
});

src/test/lib/utils/task_grade.test.ts

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
import { expect, test } from 'vitest';
22

3+
import { runTests } from '../common/test_helpers';
34
import {
45
getGradeOrder,
56
taskGradeOrderInfinity,
67
calcGradeMode,
78
getTaskGradeLabel,
9+
toChangeTextColorIfNeeds,
10+
toChangeBorderColorIfNeeds,
811
} from '$lib/utils/task';
912

1013
import { TaskGrade, type TaskGrades } from '$lib/types/task';
@@ -30,6 +33,13 @@ type TestCaseForTaskGradeLabel = {
3033

3134
type TestCasesForTaskGradeLabel = TestCaseForTaskGradeLabel[];
3235

36+
type TestCaseForTaskGrade = {
37+
taskGrade: TaskGrade;
38+
expected: string;
39+
};
40+
41+
type TestCasesForTaskGrade = TestCaseForTaskGrade[];
42+
3343
// See: src/lib/utils/task.ts
3444
//
3545
// Note: We split the test file by task and task grade because there are more test cases.
@@ -463,4 +473,96 @@ describe('Task grade', () => {
463473
test.each(testCases)(`${testName}(taskGrade: $taskGrade)`, testFunction);
464474
}
465475
});
476+
477+
describe('to change text color if needs', () => {
478+
describe('when task grades from 11Q to 1Q are given ', () => {
479+
const testCases: TestCasesForTaskGrade = [
480+
{ taskGrade: TaskGrade.Q11, expected: 'text-black' },
481+
{ taskGrade: TaskGrade.Q10, expected: 'text-black' },
482+
{ taskGrade: TaskGrade.Q6, expected: 'text-black' },
483+
{ taskGrade: TaskGrade.Q5, expected: 'text-black' },
484+
{ taskGrade: TaskGrade.Q2, expected: 'text-black' },
485+
{ taskGrade: TaskGrade.Q1, expected: 'text-black' },
486+
];
487+
488+
runTests(
489+
'toChangeTextColorIfNeeds',
490+
testCases,
491+
({ taskGrade, expected }: TestCaseForTaskGrade) => {
492+
expect(toChangeTextColorIfNeeds(getTaskGradeLabel(taskGrade))).toBe(expected);
493+
},
494+
);
495+
});
496+
497+
describe('when task grades from 1D to 5D are given', () => {
498+
const testCases: TestCasesForTaskGrade = [
499+
{ taskGrade: TaskGrade.D1, expected: 'text-white' },
500+
{ taskGrade: TaskGrade.D2, expected: 'text-white' },
501+
{ taskGrade: TaskGrade.D3, expected: 'text-white' },
502+
{ taskGrade: TaskGrade.D4, expected: 'text-white' },
503+
{ taskGrade: TaskGrade.D5, expected: 'text-white' },
504+
];
505+
506+
runTests(
507+
'toChangeTextColorIfNeeds',
508+
testCases,
509+
({ taskGrade, expected }: TestCaseForTaskGrade) => {
510+
expect(toChangeTextColorIfNeeds(getTaskGradeLabel(taskGrade))).toBe(expected);
511+
},
512+
);
513+
});
514+
515+
describe('when task grades 6D is given', () => {
516+
const testCases: TestCasesForTaskGrade = [
517+
{ taskGrade: TaskGrade.D6, expected: 'text-atcoder-bronze' },
518+
];
519+
520+
runTests(
521+
'toChangeTextColorIfNeeds',
522+
testCases,
523+
({ taskGrade, expected }: TestCaseForTaskGrade) => {
524+
expect(toChangeTextColorIfNeeds(getTaskGradeLabel(taskGrade))).toBe(expected);
525+
},
526+
);
527+
});
528+
});
529+
530+
describe('to change border color if needs', () => {
531+
describe('when task grades from 11Q to 5D are given', () => {
532+
const testCases: TestCasesForTaskGrade = [
533+
{ taskGrade: TaskGrade.Q11, expected: 'border-white' },
534+
{ taskGrade: TaskGrade.Q10, expected: 'border-white' },
535+
{ taskGrade: TaskGrade.Q7, expected: 'border-white' },
536+
{ taskGrade: TaskGrade.Q6, expected: 'border-white' },
537+
{ taskGrade: TaskGrade.Q2, expected: 'border-white' },
538+
{ taskGrade: TaskGrade.Q1, expected: 'border-white' },
539+
{ taskGrade: TaskGrade.D1, expected: 'border-white' },
540+
{ taskGrade: TaskGrade.D2, expected: 'border-white' },
541+
{ taskGrade: TaskGrade.D4, expected: 'border-white' },
542+
{ taskGrade: TaskGrade.D5, expected: 'border-white' },
543+
];
544+
545+
runTests(
546+
'toChangeBorderColorIfNeeds',
547+
testCases,
548+
({ taskGrade, expected }: TestCaseForTaskGrade) => {
549+
expect(toChangeBorderColorIfNeeds(getTaskGradeLabel(taskGrade))).toBe(expected);
550+
},
551+
);
552+
});
553+
554+
describe('when task grade 6D is given ', () => {
555+
const testCases: TestCasesForTaskGrade = [
556+
{ taskGrade: TaskGrade.D6, expected: 'border-atcoder-bronze' },
557+
];
558+
559+
runTests(
560+
'toChangeBorderColorIfNeeds',
561+
testCases,
562+
({ taskGrade, expected }: TestCaseForTaskGrade) => {
563+
expect(toChangeBorderColorIfNeeds(getTaskGradeLabel(taskGrade))).toBe(expected);
564+
},
565+
);
566+
});
567+
});
466568
});

0 commit comments

Comments
 (0)