Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@ interface AwardEditorProps {
const START_YEAR = 2020;

const getSemesterSortValue = (award: Award): number => {
const semesterValue = award.semester === SemesterTerm.FIRST ? 1 : 2;
const semesterValue = award.semesterTerm === SemesterTerm.FIRST ? 1 : 2;
return award.year * 10 + semesterValue;
};

const formatSemesterLabel = (award: Award): string => {
const semesterLabel =
award.semester === SemesterTerm.FIRST ? '1학기' : '2학기';
award.semesterTerm === SemesterTerm.FIRST ? '1학기' : '2학기';
return `${award.year} ${semesterLabel}`;
};

Expand Down Expand Up @@ -58,13 +58,13 @@ const AwardEditor = ({ awards, onChange }: AwardEditorProps) => {
);

const getAwardKey = (award: Award, index: number): string =>
`${award.year}-${award.semester}-${index}`;
`${award.year}-${award.semesterTerm}-${index}`;

const handleAddSemester = () => {
const year = parseInt(selectedYear, 10);

const isDuplicate = awards.some(
(award) => award.year === year && award.semester === selectedSemester,
(award) => award.year === year && award.semesterTerm === selectedSemester,
);
if (isDuplicate) {
alert('이미 추가된 학기입니다.');
Expand All @@ -73,7 +73,7 @@ const AwardEditor = ({ awards, onChange }: AwardEditorProps) => {

const newAward: Award = {
year,
semester: selectedSemester,
semesterTerm: selectedSemester,
achievements: [''],
};

Expand Down Expand Up @@ -221,7 +221,7 @@ const AwardEditor = ({ awards, onChange }: AwardEditorProps) => {
const originalIndex = awards.findIndex(
(originalAward, idx) =>
originalAward.year === award.year &&
originalAward.semester === award.semester &&
originalAward.semesterTerm === award.semesterTerm &&
originalAward.achievements === award.achievements,
);
const awardKey = getAwardKey(award, originalIndex);
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/types/club.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ export type SemesterTermType = (typeof SemesterTerm)[keyof typeof SemesterTerm];

export interface Award {
year: number;
semester: SemesterTermType;
semesterTerm: SemesterTermType;
achievements: string[];
}

Expand Down
12 changes: 6 additions & 6 deletions frontend/src/utils/awardHelpers.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ import { formatSemesterLabel, getAwardKey } from './awardHelpers';
describe('awardHelpers', () => {
const createAward = (
year: number,
semester: SemesterTermType,
semesterTerm: SemesterTermType,
achievements: string[] = [],
): Award => ({
year,
semester,
semesterTerm,
achievements,
});

Expand All @@ -28,14 +28,14 @@ describe('awardHelpers', () => {

it('year가 없으면 null을 반환해야 한다', () => {
const award: Partial<Award> = {
semester: SemesterTerm.FIRST,
semesterTerm: SemesterTerm.FIRST,
achievements: [],
};

expect(formatSemesterLabel(award as Award)).toBeNull();
});

it('semester가 없으면 null을 반환해야 한다', () => {
it('semesterTerm이 없으면 null을 반환해야 한다', () => {
const award: Partial<Award> = {
year: 2024,
achievements: [],
Expand All @@ -44,7 +44,7 @@ describe('awardHelpers', () => {
expect(formatSemesterLabel(award as Award)).toBeNull();
});

it('year와 semester가 모두 없으면 null을 반환해야 한다', () => {
it('year와 semesterTerm이 모두 없으면 null을 반환해야 한다', () => {
const award: Partial<Award> = {
achievements: [],
};
Expand All @@ -67,7 +67,7 @@ describe('awardHelpers', () => {
});

describe('getAwardKey', () => {
it('year, semester, index를 조합한 고유 키를 생성해야 한다', () => {
it('year, semesterTerm, index를 조합한 고유 키를 생성해야 한다', () => {
expect(getAwardKey(validAward2024First, 0)).toBe('2024-FIRST-0');
});

Expand Down
6 changes: 3 additions & 3 deletions frontend/src/utils/awardHelpers.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { Award, SemesterTerm } from '@/types/club';

export const formatSemesterLabel = (award: Award): string | null => {
if (award?.year && award?.semester) {
if (award?.year && award?.semesterTerm) {
const semesterLabel =
award.semester === SemesterTerm.FIRST ? '1학기' : '2학기';
award.semesterTerm === SemesterTerm.FIRST ? '1학기' : '2학기';
return `${award.year} ${semesterLabel}`;
}
return null;
};

export const getAwardKey = (award: Award, index: number): string =>
`${award.year}-${award.semester}-${index}`;
`${award.year}-${award.semesterTerm}-${index}`;