diff --git a/apps/web/src/app/university/application/ScoreSheet.tsx b/apps/web/src/app/university/application/ScoreSheet.tsx
index 74748588..d568cdce 100644
--- a/apps/web/src/app/university/application/ScoreSheet.tsx
+++ b/apps/web/src/app/university/application/ScoreSheet.tsx
@@ -1,7 +1,7 @@
import { useState } from "react";
import { IconExpandMoreFilled } from "@/public/svgs/community";
import type { ScoreSheet as ScoreSheetType } from "@/types/application";
-import { languageTestMapping } from "@/types/score";
+import { formatLanguageTestScore, isLanguageTestEnum, languageTestMapping } from "@/types/score";
const ScoreSheet = ({ scoreSheet }: { scoreSheet: ScoreSheetType }) => {
const [tableOpened, setTableOpened] = useState(false);
@@ -32,10 +32,12 @@ const ScoreSheet = ({ scoreSheet }: { scoreSheet: ScoreSheetType }) => {
{applicant.gpa.toFixed(2)}
- {languageTestMapping[applicant.testType]}
+ {isLanguageTestEnum(applicant.testType) ? languageTestMapping[applicant.testType] : applicant.testType}
- {applicant.testScore}
+ {isLanguageTestEnum(applicant.testType)
+ ? formatLanguageTestScore(applicant.testType, applicant.testScore)
+ : applicant.testScore}
))}
diff --git a/apps/web/src/app/university/score/ScoreScreen.tsx b/apps/web/src/app/university/score/ScoreScreen.tsx
index 5db00301..e948bcc7 100644
--- a/apps/web/src/app/university/score/ScoreScreen.tsx
+++ b/apps/web/src/app/university/score/ScoreScreen.tsx
@@ -6,7 +6,7 @@ import { useGetMyGpaScore, useGetMyLanguageTestScore } from "@/apis/Scores";
import BlockBtn from "@/components/button/BlockBtn";
import Tab from "@/components/ui/Tab";
import { IconSolidConnectionSmallLogo } from "@/public/svgs/my";
-import { languageTestMapping } from "@/types/score";
+import { formatLanguageTestScore, languageTestMapping } from "@/types/score";
import ScoreCard from "./ScoreCard";
const ScoreScreen = () => {
@@ -36,7 +36,10 @@ const ScoreScreen = () => {
= {
"5": "N5",
};
+const integerScoreTestTypes = new Set([
+ LanguageTestEnum.TOEIC,
+ LanguageTestEnum.TOEFL_IBT,
+ LanguageTestEnum.TOEFL_ITP,
+ LanguageTestEnum.DUOLINGO,
+ LanguageTestEnum.TCF,
+ LanguageTestEnum.TEF,
+ LanguageTestEnum.NEW_HSK,
+]);
+
+const trailingZeroPattern = /^-?\d+\.0+$/;
+
+export const isLanguageTestEnum = (value: string): value is LanguageTestEnum => {
+ return value in languageTestScoreInfo;
+};
+
export const formatLanguageTestScore = (testType: LanguageTestEnum, score: string) => {
if (testType === LanguageTestEnum.JLPT) {
return jlptLevelMapping[score] ?? score;
}
- return score;
+ if (!integerScoreTestTypes.has(testType)) {
+ return score;
+ }
+
+ if (!trailingZeroPattern.test(score)) {
+ return score;
+ }
+
+ return score.replace(/\.0+$/, "");
};
export const formatLanguageTestScoreWithMax = (testType: LanguageTestEnum, score: string) => {