4.0 KiB
4.0 KiB
20260316_라이브환불기능추가
구현 항목
GetCalculateLiveQueryData에roomId필드 추가 및toGetCalculateLiveResponse수정 (email 제거 예정)GetCalculateLiveResponse에roomId필드 추가 (email 제거 예정)- 환불 요청 시
roomId,canUsageStr필수 조건 확인 로직 추가 LiveRoomService내 환불 처리 로직 구현 (1차 수정:cancelLive와 동일하게 예약자 대상)- 환불 요청 API 엔드포인트 구현 (또는 수정)
GetCalculateLiveQueryData및GetCalculateLiveResponse에서email필드 제거AdminCalculateQueryRepository및CreatorAdminCalculateQueryRepository에서email조회 제거- 환불 대상을 '예약자'가 아닌 '해당 라이브 및 사용 조건에 맞는 모든 미환불 UseCan'으로 변경
LiveRoomService의refundLiveByAdmin로직을AdminCalculateService로 이동 및 수정- 이미 환불 처리된 건은 환불하지 않도록 재검증
- 사용 전/후/환불 후 캔 수 일치 여부 검증 테스트 추가
- 테스트 코드에 DisplayName을 사용하여 한글 설명 추가
- 환불 실패 케이스에 대한 테스트 추가
검증 결과
1차 구현
- 무엇을: 라이브 환불 기능 추가
- 왜: 관리자 정산 페이지 등에서 라이브별 환불 처리를 지원하기 위함
- 어떻게:
GetCalculateLiveQueryData,GetCalculateLiveResponse수정 확인- 환불 요청 API 호출 및
LiveRoomService.refundLiveByAdmin로직 실행 여부 확인 - 테스트 코드(
AdminCalculateServiceTest) 작성 및 실행 결과 확인 (성공)
2차 수정 (잘못된 처리 반영)
- 무엇을: 라이브 환불 로직 수정 및 필드 정리
- 왜: 환불은 예약자 기준이 아니며, 관리자 기능이므로 관리자 서비스에서 처리해야 함. 또한 개인정보 보호 등을 위해 불필요한
email필드 제거. - 어떻게:
GetCalculateLiveQueryData,GetCalculateLiveResponse에서email제거 확인- '모든 미환불 UseCan' 대상 환불 로직 검증 (테스트 코드 수정 및 실행)
LiveRoomService에서 해당 로직 제거 및AdminCalculateService에서 직접 처리 확인
3차 수정 (캔 수 검증 테스트 추가)
- 무엇을: 환불 시 사용자의 캔 수 변화 검증 테스트 추가
- 왜: 환불 후 사용자의 캔 수가 사용 전과 동일한지 확인하여 정합성을 보장하기 위함
- 어떻게:
AdminCalculateServiceTest에shouldMaintainCanBalanceAfterRefund테스트 추가- 사용 전, 사용 후(시뮬레이션), 환불 후 캔 수를 비교하여 사용 전과 환불 후가 동일함을 검증
./gradlew test실행 결과 성공 확인
4차 수정 (테스트 코드 가독성 개선)
- 무엇을: 테스트 코드에
@DisplayName을 사용하여 한글 설명 추가 - 왜: 테스트의 의도를 보다 명확하게 전달하기 위함
- 어떻게:
AdminCalculateServiceTest.kt의 모든 테스트 메서드에@DisplayName적용./gradlew test실행 시 한글 설명이 정상적으로 출력됨을 확인
5차 수정 (환불 실패 케이스 테스트 추가)
- 무엇을: 환불이 실패하는 예외 상황에 대한 테스트 케이스 추가
- 왜: 환불 요청 중 발생 가능한 예외 상황(잘못된 방 ID, 잘못된 구분 값, 파라미터 누락 등)을 사전에 검증하기 위함
- 어떻게:
AdminCalculateServiceTest.kt에 3개의 실패 테스트 추가shouldFailWhenRoomNotFound: 존재하지 않는 방 ID 요청 시live.room.not_found예외 검증shouldFailWhenInvalidCanUsage: 지원하지 않는 사용 구분 문자열 요청 시 예외 검증shouldFailWhenRequiredParameterMissing: 필수 파라미터 누락 시common.error.invalid_request예외 검증
./gradlew test실행 결과 5개의 테스트 모두 성공 확인