fix(live-recommend): 팔로잉 전체 채널 조회의 group by 오류를 수정한다

This commit is contained in:
2026-03-13 13:42:01 +09:00
parent 3287e718c4
commit 71636e0ac2
3 changed files with 57 additions and 1 deletions

View File

@@ -262,7 +262,12 @@ class LiveRecommendRepository(
.from(creatorFollowing)
.innerJoin(creatorFollowing.creator, member)
.where(where)
.groupBy(member.id)
.groupBy(
member.id,
member.nickname,
member.profileImage,
creatorFollowing.isNotify
)
.offset(offset)
.limit(limit)
.fetch()

View File

@@ -7,6 +7,7 @@ import kr.co.vividnext.sodalive.member.MemberRepository
import kr.co.vividnext.sodalive.member.MemberRole
import kr.co.vividnext.sodalive.member.block.BlockMember
import kr.co.vividnext.sodalive.member.block.BlockMemberRepository
import kr.co.vividnext.sodalive.member.following.CreatorFollowing
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
@@ -72,12 +73,38 @@ class LiveRecommendRepositoryTest @Autowired constructor(
assertEquals(creator.id, result[0].creatorId)
}
@Test
fun shouldReturnFollowingCreatorListWithNotifyFlag() {
val viewer = saveMember(nickname = "viewer-following", role = MemberRole.USER)
val creatorA = saveMember(nickname = "creator-following-a", role = MemberRole.CREATOR)
val creatorB = saveMember(nickname = "creator-following-b", role = MemberRole.CREATOR)
saveFollowing(member = viewer, creator = creatorA, isNotify = true)
saveFollowing(member = viewer, creator = creatorB, isNotify = false)
entityManager.flush()
entityManager.clear()
val result = liveRecommendRepository.getCreatorFollowingAllList(
memberId = viewer.id!!,
offset = 0,
limit = 20,
isBlocked = { false }
)
assertEquals(2, result.size)
val isNotifyByCreatorId = result.associate { it.creatorId to it.isNotify }
assertEquals(true, isNotifyByCreatorId[creatorA.id])
assertEquals(false, isNotifyByCreatorId[creatorB.id])
}
private fun saveMember(nickname: String, role: MemberRole): Member {
return memberRepository.saveAndFlush(
Member(
email = "$nickname@test.com",
password = "password",
nickname = nickname,
profileImage = "profile/default-profile.png",
role = role
)
)
@@ -101,4 +128,14 @@ class LiveRecommendRepositoryTest @Autowired constructor(
block.blockedMember = blockedMember
blockMemberRepository.saveAndFlush(block)
}
private fun saveFollowing(member: Member, creator: Member, isNotify: Boolean) {
val following = CreatorFollowing(
isNotify = isNotify,
isActive = true
)
following.member = member
following.creator = creator
entityManager.persist(following)
}
}