fix: 릴리즈 리뷰 반영 (스냅샷·발신자·본문 필드 계약 정정) - #294
Conversation
- MyOrderItemDetail.representativeImageUrl — "주문 당시"라 적었으나 user-order.service.ts:114가 현재 상품의 첫 이미지를 읽고 OrderItem에는 이미지 스냅샷 컬럼이 없다. 같은 품목의 productName·가격은 실제 스냅샷이라 나란히 있는 이미지도 같은 성격으로 적어 버렸다 - SellerConversationMessage.senderAccountId — "SYSTEM이면 null"이라 적었으나 인사말·FAQ 자동응답도 senderType STORE + senderAccountId null로 저장된다. 이 설명대로면 클라이언트가 인사말을 잘못 분류한다 - bodyText / bodyHtml — "하나만 채워진다"고 단정했으나 서버는 bodyFormat이 가리키는 쪽만 필수로 검사하고 반대쪽을 함께 넘기면 그대로 저장한다. 문서를 고쳤다 — 반대쪽을 지우면 기존 데이터와 계약이 달라지고, 표시 기준은 bodyFormat이라 실질 문제도 없다 지적은 seller SDL만이었으나 구매자 conversation-inquiry.graphql에도 같은 단정이 3자리 있어 함께 고쳤다(개념 단위 정합). 전체 1,874건 통과.
|
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 configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 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)진단 313건 (error 0).
architecture / security 상위 항목
|
🧹 knip — dead-code 리포트전체 리포트
|
기존 두 테스트가 서로 다른 updated_at만 써서 보조 키 분기(updated_at 동률 → id < cursor.id)를 한 번도 타지 않았다. 그 조건을 지우거나 뒤집어도 통과했다. 같은 updated_at으로 대화 둘을 만들고 큰 id를 커서로 넘겨 작은 id만 반환되는지 확인한다. 역검증: 보조 키 비교를 lt→gt로 뒤집으면 이 테스트만 실패한다. 키셋 커서를 고치면서 키셋의 핵심인 동률 처리를 테스트하지 않은 자리였다.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 77dce44f15
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| 대화 메시지 1건. bodyFormat이 읽어야 할 본문 필드를 가리킨다. | ||
| 발송 시 다른 형식의 본문을 함께 넘기면 그대로 저장되므로, 두 필드가 모두 채워져 | ||
| 있을 수 있다 — 표시할 본문은 bodyFormat으로 고른다. |
There was a problem hiding this comment.
Correct the remaining exclusive-body description
The updated type description correctly states that both body fields may be stored, but SellerConversationMessage.bodyFormat immediately below still says that only one of bodyText or bodyHtml is populated. When sellerSendConversationMessage receives both fields, the service persists both, so GraphQL introspection remains internally contradictory and can still cause seller clients to assume the non-selected field is null; update that field description as part of this contract correction.
Useful? React with 👍 / 👎.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Coverage report
Test suite run success1875 tests passing in 225 suites. Report generated by 🧪jest coverage report action from df4e67c |
릴리즈 PR #289 리뷰 추가분 3건.
MyOrderItemDetail.representativeImageUrlitem.product.images[0]을 읽는다.OrderItem에 이미지 스냅샷 컬럼이 없다 — 판매자가 바꾸면 값이 달라지거나 nullSellerConversationMessage.senderAccountIdSYSTEM이면 nullSTORE+ nullbodyText/bodyHtmlbodyFormat이 가리키는 쪽만 필수 검사. 반대쪽을 함께 넘기면 그대로 저장첫 건이 나온 이유
같은 품목의
productName·가격은 실제로 스냅샷이다. 이미지만 아닌데 필드가 나란히 있어 같은 성격으로 적어 버렸다.세 번째에서 코드가 아니라 문서를 고친 이유
반대쪽 본문을 지우는 동작을 넣으면 이미 저장된 데이터와 계약이 달라진다. 표시 기준은
bodyFormat이라 실질 문제도 없다.개념 단위 정합
지적은 seller SDL만이었으나 구매자
conversation-inquiry.graphql에도 같은 단정이 3자리 더 있어 함께 고쳤다. 한쪽만 고치면 두 문서가 서로 모순된다.검증
전체 225 suites 1,874건 통과.
tsc·docs:check통과.