Skip to content

Commit

Permalink
refactor: (#205) 마감 시간을 구하는 유틸 함수 분리
Browse files Browse the repository at this point in the history
  • Loading branch information
Gilpop8663 committed Aug 2, 2023
1 parent e9f0994 commit b759ccd
Show file tree
Hide file tree
Showing 3 changed files with 87 additions and 30 deletions.
53 changes: 53 additions & 0 deletions frontend/__test__/getDeadlineTime.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
import { getDeadlineTime } from '@utils/post/getDeadlineTime';

describe('getDeadlineTime를 이용하여 사용자에게 마감 시간을 알려준다.', () => {
test('5분을 설정했을 때 5분으로 표시된다', () => {
const result = getDeadlineTime({
day: 0,
hour: 0,
minute: 5,
});

expect(result).toBe('5분 후에 마감됩니다.');
});

test('1시간 5분을 설정했을 때 1시간 5분으로 표시된다', () => {
const result = getDeadlineTime({
day: 0,
hour: 1,
minute: 5,
});

expect(result).toBe('1시간 5분 후에 마감됩니다.');
});

test('2일 23시간 59분을 설정했을 때 2일 23시간 59분으로 표시된다', () => {
const result = getDeadlineTime({
day: 2,
hour: 23,
minute: 59,
});

expect(result).toBe('2일 23시간 59분 후에 마감됩니다.');
});

test('0일 0시간 0분을 설정했을 때 "마감 시간을 선택해주세요"를 표시된다', () => {
const result = getDeadlineTime({
day: 0,
hour: 0,
minute: 0,
});

expect(result).toBe('마감 시간을 선택해주세요');
});

test('-1일 -1시간 -1분을 설정했을 때 "마감 시간을 다시 설정해주세요"를 표시된다', () => {
const result = getDeadlineTime({
day: -1,
hour: -1,
minute: -1,
});

expect(result).toBe('마감 시간을 다시 설정해주세요');
});
});
31 changes: 1 addition & 30 deletions frontend/src/components/PostForm/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import { POST_DESCRIPTION_MAX_LENGTH, POST_TITLE_MAX_LENGTH } from '@constants/p

import { changeCategoryToOption } from '@utils/post/changeCategoryToOption';
import { addTimeToDate, formatTimeWithOption } from '@utils/post/formatTime';
import { getDeadlineTime } from '@utils/post/getDeadlineTime';

import { DEADLINE_OPTION } from './constants';
import ContentImagePart from './ContentImageSection';
Expand Down Expand Up @@ -148,36 +149,6 @@ export default function PostForm({ data, mutate, isError, error }: PostFormProps
}
};

const getDeadlineTime = ({
day,
hour,
minute,
}: {
day: number;
hour: number;
minute: number;
}) => {
const timeMessage = [];

if (day === 0 && hour === 0 && minute === 0) {
return '마감 시간을 선택해주세요';
}

if (day > 0) {
timeMessage.push(`${day}일`);
}

if (hour > 0) {
timeMessage.push(`${hour}시간`);
}

if (minute > 0) {
timeMessage.push(`${minute}분`);
}

return `${timeMessage.join(' ')} 후에 마감됩니다.`;
};

return (
<>
<S.HeaderWrapper>
Expand Down
33 changes: 33 additions & 0 deletions frontend/src/utils/post/getDeadlineTime.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
export const getDeadlineTime = ({
day,
hour,
minute,
}: {
day: number;
hour: number;
minute: number;
}) => {
const timeMessage = [];

if (day < 0 || hour < 0 || minute < 0) {
return '마감 시간을 다시 설정해주세요';
}

if (day === 0 && hour === 0 && minute === 0) {
return '마감 시간을 선택해주세요';
}

if (day > 0) {
timeMessage.push(`${day}일`);
}

if (hour > 0) {
timeMessage.push(`${hour}시간`);
}

if (minute > 0) {
timeMessage.push(`${minute}분`);
}

return `${timeMessage.join(' ')} 후에 마감됩니다.`;
};

0 comments on commit b759ccd

Please sign in to comment.