Skip to content

test(reviews/favorites): 리뷰·찜 서버 API 테스트 추가#349

Merged
jay0425 merged 3 commits into
developfrom
#348-test-reviews-and-favorites
Apr 21, 2026
Merged

test(reviews/favorites): 리뷰·찜 서버 API 테스트 추가#349
jay0425 merged 3 commits into
developfrom
#348-test-reviews-and-favorites

Conversation

@jay0425
Copy link
Copy Markdown
Collaborator

@jay0425 jay0425 commented Apr 20, 2026

🛠️ 설명 (Description)

favorites mock data와 favoritesHandlers 추가하고
MSW 기반으로 리뷰/찜 서버 API 테스트를 추가했습니다.

  • 리뷰/찜 목록 조회 성공 케이스뿐 아니라, 필터/정렬/날짜 파라미터가 실제 요청 쿼리로 올바르게 변환되는지와 실패 시 ApiError로 정상 매핑되는지를 검증했습니다.
    또한 next/headerscookies() 모킹을 mocks/utils/mockHeader.ts로 분리해 리뷰/찜 서버 API 테스트에서 공통으로 재사용하도록 정리했습니다.

📝 변경 사항 요약 (Summary)

  • MSW 기반 리뷰/찜 서버 API 테스트 추가
    • 찜한 모임 목록 조회 api 테스트를 위해 mocks/data/favoritesmocks/handlers/favorites를 추가해 기존 mock 구조와 동일한 방식으로 재구성했습니다.
  • 리뷰/찜 목록 조회 성공 응답 검증
  • 객체 인자 및 URLSearchParams 입력에 대한 쿼리 변환 검증
  • 날짜 범위, 정렬, 커서, size 파라미터 직렬화 검증
  • serverFetch가 읽는 cookie 상태와 Authorization 헤더 주입 검증
    • mocks/utils/mockHeader.ts 추가로 next/headers mock 유틸 공통화했습니다.
  • 에러 응답 시 ApiError 매핑 및 기본 메시지 fallback 검증

💁 변경 사항 이유 (Why)

  • 서버 API 레이어의 회귀를 빠르게 감지하기 위해
  • 검색/필터 파라미터 직렬화 오류를 사전에 방지하기 위해
  • 백엔드 에러 응답과 기본 에러 메시지 매핑이 기대대로 동작하는지 보장하기 위해

✅ 테스트 계획 (Test Plan)

reviews 테스트

pnpm test -- --runInBand features/reviews/apis/server.test.ts

favorites 테스트

pnpm test -- --runInBand features/favorites/apis/server.test.ts

reviews, favorites 한번에 테스트

pnpm test -- --runInBand features/reviews/apis/server.test.ts features/favorites/apis/server.test.ts
  • 결과: 2개 테스트 스위트, 15개 테스트 통과

  • MSW 기반 서버 API 테스트 수행

  • 리뷰/찜 목록 조회 성공 응답 파싱 검증

  • 객체 인자 및 URLSearchParams 입력에 대한 쿼리스트링 변환 검증

  • 날짜 범위 문자열(+09:00 suffix 포함) 직렬화 검증

  • 숫자가 아닌 size 값 제외 처리 검증

  • cookie 기반 Authorization 헤더 주입 검증

  • 에러 응답 시 ApiError 변환 및 기본 메시지 처리 검증

  • 리뷰 통계 API 성공/실패 케이스 검증

🔗 관련 이슈 (Related Issues)

☑️ 체크리스트 (Checklist)

  • 코드가 프로젝트 코딩 컨벤션을 따릅니다.
  • 테스트 코드가 작성되었고, 통과했습니다.
  • 변경 사항에 대한 문서화가 완료되었습니다.
  • 필요한 경우, 다른 팀원에게 리뷰를 요청했습니다.
  • CI/CD 파이프라인이 성공했습니다.

👀 리뷰어를 위한 참고 사항 (Notes for Reviewers)

  • mocks/utils/mockHeader.tsnext/headerscookies()를 공통으로 mock 하기 위한 유틸입니다.
  • 날짜 파라미터 검증은 현재 유틸 구현이 timezone 계산이 아니라 +09:00 고정 문자열을 append하는 구조라 toBe(...)로 전체 문자열을 엄격히 검증했습니다.

➕ 추가 정보 (Additional Information)

- MSW 기반 서버 API 테스트를 추가
- 조회 성공, 쿼리 변환, 에러 처리를 검증

Resolves: #348
@jay0425 jay0425 self-assigned this Apr 20, 2026
@jay0425 jay0425 added the test 테스트 코드 추가/수정 label Apr 20, 2026
Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces unit tests for the favorites and reviews server-side APIs, ensuring correct data retrieval, query parameter serialization, and error handling. The review feedback identifies potential test flakiness due to hardcoded timezone offsets in date string comparisons and suggests refactoring duplicated cookie store mocking logic into a common utility to improve maintainability.

Comment thread features/favorites/apis/server.test.ts
Comment thread features/reviews/apis/server.test.ts
Comment thread features/favorites/apis/server.test.ts Outdated
@github-actions
Copy link
Copy Markdown

🧷 Preview: https://reboot-cuynovxm1-code-base.vercel.app
⏰ 배포 시각: 2026년 04월 20일 22시 05분

jay0425 added 2 commits April 20, 2026 23:00
- favorites 목록/count 응답을 mocks/data 구조로 분리
- favorites 핸들러가 mocks/data를 사용하도록 정리
- reviews/favorites server test가 mocks/data fixture를 재사용하도록 변경

Resolves: #348
- 코드 중복 방지와 재사용성을 위해 reviews와 favorites에서 createCookieStore와 mockedCookies를 mockHeader.ts로 분리

Resolves: #348
@github-actions
Copy link
Copy Markdown

🧷 Preview: https://reboot-aqgx6ueo5-code-base.vercel.app
⏰ 배포 시각: 2026년 04월 20일 23시 05분

@jay0425 jay0425 merged commit b654e68 into develop Apr 21, 2026
1 check passed
@jay0425 jay0425 deleted the #348-test-reviews-and-favorites branch April 21, 2026 00:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test 테스트 코드 추가/수정

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[TEST] 모든 리뷰/찜한 모임 페이지 api 기능 테스트 작성, MSW 작성 확인

1 participant