diff --git a/src/main/java/com/chooz/post/persistence/PostQueryDslRepository.java b/src/main/java/com/chooz/post/persistence/PostQueryDslRepository.java index e2ad17b..dc3d2d1 100644 --- a/src/main/java/com/chooz/post/persistence/PostQueryDslRepository.java +++ b/src/main/java/com/chooz/post/persistence/PostQueryDslRepository.java @@ -172,7 +172,10 @@ public Slice findVotedPostsWithVoteCount(Long userId, Long po JPAExpressions .select(vote.postId) .from(vote) - .where(vote.userId.eq(userId)) + .where( + vote.userId.eq(userId), + vote.deleted.isFalse() + ) ), cursor(postId, post.id), post.deleted.isFalse() diff --git a/src/test/java/com/chooz/post/application/PostQueryServiceTest.java b/src/test/java/com/chooz/post/application/PostQueryServiceTest.java index 4714a04..9a0973e 100644 --- a/src/test/java/com/chooz/post/application/PostQueryServiceTest.java +++ b/src/test/java/com/chooz/post/application/PostQueryServiceTest.java @@ -15,6 +15,7 @@ import com.chooz.thumbnail.domain.ThumbnailRepository; import com.chooz.user.domain.User; import com.chooz.user.domain.UserRepository; +import com.chooz.vote.application.VoteService; import com.chooz.vote.domain.Vote; import com.chooz.vote.domain.VoteRepository; import org.junit.jupiter.api.DisplayName; @@ -53,6 +54,8 @@ class PostQueryServiceTest extends IntegrationTest { @Autowired ThumbnailRepository thumbnailRepository; + @Autowired + private VoteService voteService; @Test @DisplayName("게시글 조회") @@ -242,10 +245,18 @@ void findVotedPosts_multiple() { .userId(user.getId()) .pollOption(PostFixture.multiplePollOption()) .build()); + Post post2 = postRepository.save(PostFixture.createPostBuilder() + .userId(user.getId()) + .pollOption(PostFixture.multiplePollOption()) + .build()); //유저1 선택지 1, 2 복수 투표 voteRepository.save(VoteFixture.createDefaultVote(user.getId(), post.getId(), post.getPollChoices().get(0).getId())); voteRepository.save(VoteFixture.createDefaultVote(user.getId(), post.getId(), post.getPollChoices().get(1).getId())); + //유저1 게시글2 투표 후 취소 + voteRepository.save(VoteFixture.createDefaultVote(user.getId(), post2.getId(), post2.getPollChoices().get(1).getId())); + voteService.vote(user.getId(), post2.getId(), List.of()); + //when var response = postService.findVotedPosts(user.getId(), null, 10);