feat: 관리자 배너에 링크 대상 노출 가능 여부(linkTargetAvailable) 추가 - #489
Conversation
관리자 배너 목록이 링크 대상(상품·매장·카테고리)이 나중에 숨겨지거나 삭제된 배너도 "현재 노출"로 표시했다. 구매자 조회(findFirstBanner)는 그런 배너를 건너뛰고 다음 배너를 내보내는데, 관리자 응답에는 그 판단 근거가 없었다. - 링크 대상 조건을 bannerLinkTargetVisibleWhere 조각 하나로 추출(repositories/banner-link-target.helper.ts) - findFirstBanner와 관리자 판정이 같은 조각을 써서 규칙이 어긋날 수 없게 함 - AdminBanner.linkTargetAvailable: Boolean! 추가 - 목록·단건·생성·수정 응답 모두 같은 경로(toOutputs)로 계산 - 로드한 배너 id로 banner.findMany(id in + 조각) 1회, TS로 규칙을 다시 쓰지 않음 - CATEGORY 지면의 EVENT 조건은 지면 조건이라 조각 밖에 둠(카테고리 타입은 수정 불가, 저장 시점 검증이 막음) 회귀 테스트(product-admin-banner.service.spec) - 링크 타입 전수 표 13건: NONE·URL, 상품(노출/비활성/삭제/매장 비활성/매장 삭제), 매장·카테고리(노출/비활성/삭제) - 목록·단건 값과 구매자 findHomeBanner 노출 여부가 함께 일치하는지 단언 - 숨겨진 상위 배너는 구매자 조회가 건너뛰고 관리자 목록에 false로 드러남 - 생성 true → 대상 숨김 뒤 단건 false → 링크 변경 수정 응답 true - 반증: 매퍼에서 값을 true로 고정하면 false 케이스 10건 실패
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
🩺 NestJS Doctor — 90/100 (Excellent)진단 470건 (error 12).
architecture / security 상위 항목
|
🧹 knip — dead-code 리포트전체 리포트
|
Coverage report
Test suite run success3742 tests passing in 355 suites. Report generated by 🧪jest coverage report action from 891d758 |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
배경
변경
AdminBanner에linkTargetAvailable: Boolean!을 추가했습니다.findFirstBanner)의 링크 대상 조건을banner-link-target.helper.ts의 조각 하나로 옮기고, 관리자 판정도 그 조각으로 거릅니다(규칙을 TS로 다시 쓰지 않아 둘이 어긋나지 않음).테스트
it.each)를 추가했습니다. 각 행에서 목록 값, 단건 값, 구매자 홈 배너 노출 여부가 서로 일치하는지 봅니다.플랜 대조
linkTargetAvailable: Boolean!추가