fix(community): 유료 게시글 최근 소식 발행을 막는다
This commit is contained in:
@@ -145,6 +145,8 @@ class CreatorCommunityService(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun publishCommunityPostCreatedAfterCommit(post: CreatorCommunity, member: Member) {
|
private fun publishCommunityPostCreatedAfterCommit(post: CreatorCommunity, member: Member) {
|
||||||
|
if (post.price > 0) return
|
||||||
|
|
||||||
val occurredAtUtc = post.createdAt ?: LocalDateTime.now()
|
val occurredAtUtc = post.createdAt ?: LocalDateTime.now()
|
||||||
val newsContent = post.newsContentPreview()
|
val newsContent = post.newsContentPreview()
|
||||||
afterCommit {
|
afterCommit {
|
||||||
|
|||||||
@@ -330,15 +330,14 @@ class CreatorCommunityServiceTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("유료 커뮤니티 게시글 최근 소식은 전체 본문을 노출하지 않고 미리보기만 발행한다")
|
@DisplayName("유료 커뮤니티 게시글 생성 성공 후 최근 소식을 발행하지 않는다")
|
||||||
fun shouldPublishPaidCommunityPostNewsWithMaskedContent() {
|
fun shouldNotPublishNewsAfterPaidCommunityPostCreated() {
|
||||||
val creator = createMember(id = 910L, role = MemberRole.CREATOR, nickname = "paid-community-creator")
|
val creator = createMember(id = 910L, role = MemberRole.CREATOR, nickname = "paid-community-creator")
|
||||||
val fullContent = "유료 커뮤니티 게시글 전체 본문은 최근 소식에서 노출되면 안 됩니다"
|
val fullContent = "유료 커뮤니티 게시글 전체 본문은 최근 소식에서 노출되면 안 됩니다"
|
||||||
val createdAt = LocalDateTime.of(2026, 6, 25, 11, 0)
|
|
||||||
Mockito.`when`(repository.save(Mockito.any(CreatorCommunity::class.java))).thenAnswer { invocation ->
|
Mockito.`when`(repository.save(Mockito.any(CreatorCommunity::class.java))).thenAnswer { invocation ->
|
||||||
val post = invocation.getArgument<CreatorCommunity>(0)
|
val post = invocation.getArgument<CreatorCommunity>(0)
|
||||||
post.id = 911L
|
post.id = 911L
|
||||||
post.createdAt = createdAt
|
post.createdAt = LocalDateTime.of(2026, 6, 25, 11, 0)
|
||||||
post
|
post
|
||||||
}
|
}
|
||||||
Mockito.`when`(
|
Mockito.`when`(
|
||||||
@@ -357,17 +356,7 @@ class CreatorCommunityServiceTest {
|
|||||||
member = creator
|
member = creator
|
||||||
)
|
)
|
||||||
|
|
||||||
Mockito.verify(homeFollowingNewsPublishService).publishCommunityPostCreated(
|
Mockito.verifyNoInteractions(homeFollowingNewsPublishService)
|
||||||
postId = 911L,
|
|
||||||
creatorId = creator.id!!,
|
|
||||||
creatorNickname = creator.nickname!!,
|
|
||||||
creatorProfileImagePath = creator.profileImage,
|
|
||||||
title = "유료 커뮤니티 게시글 전체 ...",
|
|
||||||
body = "유료 커뮤니티 게시글 전체 ...",
|
|
||||||
thumbnailImagePath = "creator_community/911/911-image.png",
|
|
||||||
occurredAtUtc = createdAt,
|
|
||||||
isAdult = false
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ import java.time.LocalDateTime
|
|||||||
|
|
||||||
class HomeFollowingNewsPublishServiceTest {
|
class HomeFollowingNewsPublishServiceTest {
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("커뮤니티 게시글 발행은 현재 활성 팔로워에게만 inbox record를 생성한다")
|
@DisplayName("무료 커뮤니티 게시글 발행은 현재 활성 팔로워에게만 inbox record를 생성한다")
|
||||||
fun shouldPublishCommunityPostCreatedToActiveFollowers() {
|
fun shouldPublishFreeCommunityPostCreatedToActiveFollowers() {
|
||||||
val inboxPort = FakeHomeFollowingNewsInboxPort(activeFollowerIds = listOf(1L, 2L))
|
val inboxPort = FakeHomeFollowingNewsInboxPort(activeFollowerIds = listOf(1L, 2L))
|
||||||
val service = HomeFollowingNewsPublishService(inboxPort)
|
val service = HomeFollowingNewsPublishService(inboxPort)
|
||||||
val occurredAtUtc = LocalDateTime.of(2026, 6, 25, 1, 2, 3)
|
val occurredAtUtc = LocalDateTime.of(2026, 6, 25, 1, 2, 3)
|
||||||
|
|||||||
Reference in New Issue
Block a user