Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

댓글 생성 및 삭제 시 댓글 수 업데이트 안 되는 버그 해결 #164

Merged
merged 15 commits into from
Mar 14, 2024

Conversation

yenzip
Copy link
Contributor

@yenzip yenzip commented Mar 13, 2024

🎫 관련 이슈

Resolves #153

✅ 구현 내용

  • Project 테이블에 commentCount 값 추가
  • Comment 생성 및 삭제 시 commentCount 값 변경(업데이트)
  • Comment 생성 및 삭제 테스트에 댓글수 업데이트 확인

💬 코멘트

대댓글이 존재하는 댓글 삭제 시 대댓글 수 + 댓글 수 까지 삭제되도록 반영했습니다!
테스트 코드 작성하려고 하는데 이상한 부분이 있어 세희 언니와 이야기 나누어보고 작성하도록 하겠습니다!

Copy link

📝 Jacoco Test Coverage

Overall Project 71.44%
Files changed 100% 🍏

File Coverage
CommentRepositoryCustomImpl.java 100% 🍏
ProjectResponse.java 100% 🍏
Project.java 97.94% 🍏
CommentService.java 94.57% 🍏
ProjectService.java 92.78% 🍏

Copy link
Member

@Sehee-Lee-01 Sehee-Lee-01 left a comment

Choose a reason for hiding this comment

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

우선 CommentServiceTest 제외하고 리뷰 남겼습니다! 제가 해야할 부분인데 구현해주셔서 너무너무 죄송하고 감사합니다,,,
테스트 관련 부분은 저도 찾아보겠습니당!!

@@ -79,15 +78,15 @@ public static ProjectResponse from(Project project, List<OverviewImageSummary> o
.deployUrl(project.getDeployUrl())
.viewCount(project.getViewCount())
.likeCount(project.getLikeCount())
.commentCount(comments.commentCount()) // 댓글 + 대댓글
.commentCount(project.getCommentCount()) // 댓글 + 대댓글
Copy link
Member

Choose a reason for hiding this comment

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

더 가독성 있고 좋네유!!👍

Comment on lines 456 to 470
@Test
void 대댓글이_있는_댓글_삭제에_성공한다() {
// given, when
// given
Comment subComment = createAndSaveComment(user, null, comment);
Long initialCommentCount = project.getCommentCount();

// when
commentService.delete(user.getId(), comment.getId());

// then
assertThat(commentRepository.findById(comment.getId())).isEmpty();
assertThat(commentRepository.findById(subComment.getId())).isEmpty();
// TODO: Empty가 아닌 것으로 나오는 이유 알아보기
// assertThat(commentRepository.findById(subComment.getId())).isEmpty();
assertThat(project.getCommentCount()).isEqualTo(initialCommentCount - 2);
}
Copy link
Member

Choose a reason for hiding this comment

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

현재 주석한 줄 제외하고는 모두 통과 됩니다! JPA 영속성 컨텍스트에서 발생한 문제 같은데 정리해서 나중에 공유하겟습니다! 테스트 코드가 영향이 가서 죄송합니다,,, 여기에 추가로 잘 작성해주셔서 감사합니다!🥰

Copy link

📝 Jacoco Test Coverage

Overall Project 71.64%
Files changed 100% 🍏

File Coverage
CommentRepositoryCustomImpl.java 100% 🍏
Comment.java 100% 🍏
ProjectResponse.java 100% 🍏
Project.java 98.15% 🍏
CommentService.java 94.57% 🍏
ProjectService.java 92.78% 🍏

Comment on lines +12 to +15

<!-- TEST 패키지 하위에 대한 VariableDeclarationUsageDistance 검사를 무시 -->
<suppress checks="VariableDeclarationUsageDistance"
files=".*src[/\\]test[/\\].*\.java"/>
Copy link
Member

@Sehee-Lee-01 Sehee-Lee-01 Mar 14, 2024

Choose a reason for hiding this comment

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

요 부분은 선언한 지역 변수가 assertThat 확인하는 줄과 떨어져 있을 때 발생해서 추가했습니다! 앞으로도 테스트 코드에서 많이 뜰 것 같아서 이 파일에 선언했습니다!

@@ -45,7 +47,7 @@ public class Comment extends BaseTimeEntity {
@JoinColumn(name = "user_id")
private User user;

// TODO: @OnDelete(action = OnDeleteAction.CASCADE) 설정을 안해도 돌아간다. 필요할까!(고민중)
@OnDelete(action = OnDeleteAction.CASCADE)
Copy link
Member

Choose a reason for hiding this comment

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

전에 TODO 남겨둔 것인데 다른 컬럼들 @column(name = "is_anonymous", nullable = false) 명시적으로 해놓은 것처럼 여기도 명시적으로 남겨두었습니다!

@Sehee-Lee-01 Sehee-Lee-01 merged commit 2524aba into dev Mar 14, 2024
2 checks passed
@Sehee-Lee-01 Sehee-Lee-01 deleted the fix/#153-update-comment-count branch March 17, 2024 12:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

반정규화 컬럼(ex. likeCount, commentCount)에 대해 생성 및 삭제 시 값 업데이트
2 participants