Skip to content

Commit

Permalink
[refactor]: formatSingleDigit 선행 조건 강화 및 테스트 코드 수정 (#337)
Browse files Browse the repository at this point in the history
* feat: 테스트 케이스 추가

* feat: formatSingleDigit 선행조건 강화

* refactor: 음수 및 정수가 아닌 숫자 에러처리

* fix: infinity 관련 tc 추가
  • Loading branch information
kimyouknow authored Jan 14, 2024
1 parent d92214d commit fb52f64
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 11 deletions.
39 changes: 28 additions & 11 deletions src/utils/format.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,42 @@ import { formatSingleDigit } from '~/utils/format';

describe('format 관련 유틸 함수', () => {
describe('formatSingleDigit 함수 테스트', () => {
it('🟢 한 자리 숫자에 대해 선행 0이 있는 문자열을 반환한다. ', () => {
expect(formatSingleDigit(0)).toBe('00');
it('🟢 한 자리 양수에 대해 선행 0이 있는 문자열을 반환한다. ', () => {
expect(formatSingleDigit(5)).toBe('05');
expect(formatSingleDigit(9)).toBe('09');
expect(formatSingleDigit(1.0)).toBe('01');
});
it('🟢 "0"에 대해 선행0이 있는 문자열을 반환한다.', () => {
expect(formatSingleDigit(0)).toBe('00');
});
it('🟢 두 자리 숫자에 대해 숫자를 문자열로 반환한다.', () => {
it('🟢 두 자리 이상의 숫자에 대해 해당 숫자를 문자열로 반환한다.', () => {
expect(formatSingleDigit(10)).toBe('10');
expect(formatSingleDigit(25)).toBe('25');
expect(formatSingleDigit(99)).toBe('99');
expect(formatSingleDigit(100)).toBe('100');
expect(formatSingleDigit(9999999)).toBe('9999999');
});
// TODO: @kimyouknow 아래 테스트 케이스에 맞게 formatSingleDigit 수정하기
it.todo('🟢 음수는 그대로 반환한다.', () => {
expect(formatSingleDigit(-5)).toBe('-5');
expect(formatSingleDigit(-9)).toBe('-9');
it('🔴 음수에 대해 에러를 반환한다..', () => {
expect(() => formatSingleDigit(-5)).toThrowError(
'잘못된 입력입니다. 양수 정수만 처리 가능합니다.'
);
expect(() => formatSingleDigit(-9)).toThrowError(
'잘못된 입력입니다. 양수 정수만 처리 가능합니다.'
);
expect(() => formatSingleDigit(-9.1)).toThrowError(
'잘못된 입력입니다. 양수 정수만 처리 가능합니다.'
);
});
// TODO: @kimyouknow 아래 테스트 케이스에 맞게 formatSingleDigit 수정하기
it.todo('🟢 정수가 아닌 숫자는 그대로 반환한다.', () => {
expect(formatSingleDigit(5.5)).toBe('5.5');
expect(formatSingleDigit(9.9)).toBe('9.9');
it('🔴 정수가 아닌 숫자에 대해 에러를 반환한다.', () => {
expect(() => formatSingleDigit(5.5)).toThrowError(
'잘못된 입력입니다. 양수 정수만 처리 가능합니다.'
);
expect(() => formatSingleDigit(9.9)).toThrowError(
'잘못된 입력입니다. 양수 정수만 처리 가능합니다.'
);
expect(() => formatSingleDigit(Infinity)).toThrowError(
'잘못된 입력입니다. 양수 정수만 처리 가능합니다.'
);
});
});
});
4 changes: 4 additions & 0 deletions src/utils/format.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
export function formatSingleDigit(number: number) {
if (number < 0 || !Number.isInteger(number)) {
throw new Error('잘못된 입력입니다. 양수 정수만 처리 가능합니다.');
}

if (number < 10) {
return '0' + number;
}
Expand Down

0 comments on commit fb52f64

Please sign in to comment.