[7팀 정건휘] Chapter 3-2. 프론트엔드 테스트 코드#39
Open
geonhwiii wants to merge 14 commits intohanghae-plus:mainfrom
Open
Conversation
- dateUtils.ts에 generateRepeatDates 함수 추가 - 31일 반복 시 31일이 없는 달(2월, 4월, 6월) 건너뛰기 처리 - 31일 매월 반복 엣지 케이스 테스트 추가 - Red → Green → Refactor TDD 사이클 준수 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- generateRepeatDates 함수에 yearly 반복 타입 추가 - 윤년 2월 29일 매년 반복 시 평년은 건너뛰고 다음 윤년에만 생성 - 윤년 처리 엣지 케이스 테스트 추가 - Red → Green TDD 사이클 준수 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- generateRepeatDates 함수에 event.repeat.endDate 처리 추가 - effectiveEndDate 로직으로 더 이른 종료 날짜 우선 적용 - monthly, yearly 반복 타입 모두에 종료 조건 적용 - "특정 날짜까지" 반복 종료 조건 테스트 추가 - Red → Green TDD 사이클 준수 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- generateRepeatDates 함수에 daily 반복 타입 추가 - 반복 간격(interval) 설정에 따른 일 단위 간격 처리 - 2일 간격 매일 반복 테스트 케이스 추가 - Red → Green TDD 사이클 준수 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- generateRepeatDates 함수에 weekly 반복 타입 추가 - 주간 반복 간격(7일 * interval) 처리 - 2주 간격 주간 반복 테스트 케이스 추가 - Red → Green TDD 사이클 준수 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
TDD Red-Green-Refactor 사이클로 구현: - createRepeatEvents: EventForm을 반복 설정에 따라 여러 Event로 생성 - updateSingleRepeatEvent: 반복 일정 중 하나를 단일 일정으로 변경 - deleteSingleRepeatEvent: 반복 일정 중 특정 일정만 삭제 - markRepeatEvents: 반복 일정 시각적 구분을 위한 메타데이터 추가 - EventWithDisplay 타입 추가로 UI 표시 지원 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1b3a1bf to
2058987
Compare
- 캘린더 월간 뷰에 반복 일정 아이콘 추가 - 캘린더 주간 뷰에 반복 일정 아이콘 추가 - 이벤트 목록 뷰에 반복 일정 아이콘 추가 - markRepeatEvents 함수로 isRepeatEvent 플래그 추가 - Repeat 아이콘으로 반복 일정 시각적 구분 - PR 템플릿 "반복 일정 표시" 체크박스 완료 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
TDD로 구현한 반복 횟수 기반 종료 조건: - RepeatInfo 타입에 endCount 필드 추가 - generateRepeatDates 함수에서 횟수 기반 종료 로직 구현 - UI에서 종료 조건 선택 옵션 추가 (종료 없음/특정 날짜까지/특정 횟수만큼) - 반복 UI 주석 해제 및 종료 조건 선택 인터페이스 추가 - 모든 반복 타입(daily/weekly/monthly/yearly)에서 횟수 제한 지원 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Phase 3: TDD로 구현한 반복 일정 전체 조작 기능: - 반복 일정 전체 조작을 위한 TDD 테스트 작성 - updateAllRepeatEvents, deleteAllRepeatEvents 함수 구현 - UI에 반복 일정 전체 수정/삭제 다이얼로그 추가 - 반복 일정 수정/삭제 시 단일 또는 전체 선택 옵션 제공 - PR 체크박스 '반복 일정 전체 수정 및 삭제' 완료 표시 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Phase 4: TDD로 구현한 예외 날짜 처리 기능: - RepeatInfo 타입에 excludeDates 필드 추가 - generateRepeatDates 함수에서 예외 날짜 필터링 로직 구현 - UI에 예외 날짜 추가/삭제 기능 추가 (날짜 선택기 + Chip 표시) - 반복 일정 생성 시 excludeDates 포함하여 저장 - TDD 테스트 2개 추가 (예외 날짜 제외, 예외 없는 경우) - PR 체크박스 '예외 날짜 처리' 완료 표시 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
PR 템플릿에 다음 내용 추가: - BDD(Given-When-Then) 테스트 전략 설명 및 선택 이유 - 반복 일정 기능 관련 10개 TDD 테스트 케이스 목록 - 심화 과제 체크박스 완료 표시 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
8주차 과제 체크포인트
기본 과제
필수
선택
심화 과제
각 팀원들의 테스트 전략은?
Given-When-Then BDD 전략 사용
합의된 테스트 전략과 그 이유는 무엇인가요?
BDD(Given-When-Then) 전략을 선택한 이유:
추가로 작성된 테스트 코드는 어떤 것들이 있나요?
반복 일정 기능 관련 TDD 테스트 (
src/__tests__/unit/repeatEvent.spec.ts)31일 기준 매월 반복 처리
윤년 2월 29일 매년 반복 처리
반복 종료 조건 처리
반복 간격 계산
반복 일정 전체 조작
예외 날짜 처리
총 10개의 새로운 테스트 케이스 추가하여 반복 일정의 핵심 비즈니스 로직 검증
과제 셀프회고
기술적 성장
과제를 시작하기 전에, 여러 TDD에 대한 영상을 많이 학습했습니다.
"feconf의 프론트엔드에서 TDD를 하는 방법과", "kakao에서 TDD를 통해 개발기간을 단축시킨 사례" 였습니다.
Given-When-Then 구조의 장점은 사람이 이해하기 쉽고, AI도 이해하기 쉽다는 것이 큰 장점입니다.
이를 통해, 프로젝트의 명세서를 테스트코드로 명확하게 작성하고, 빠르게 테스트를 작성하여 생산성과 안정성을 확보할 수 있습니다.
코드 품질
학습 효과 분석
리뷰 받고 싶은 내용