From 4a21827b472ede40e928b5eb95fcf7783532fd13 Mon Sep 17 00:00:00 2001 From: klaus Date: Mon, 8 Jun 2026 15:22:02 +0900 Subject: [PATCH] =?UTF-8?q?feat(widget):=20=EB=9E=AD=ED=82=B9=20=EC=88=9C?= =?UTF-8?q?=EC=9C=84=20=EB=B3=80=EB=8F=99=20=ED=91=9C=EC=8B=9C=20=EC=98=B5?= =?UTF-8?q?=EC=85=98=EC=9D=84=20=EC=B6=94=EA=B0=80=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../creatorranking/CreatorRankingItem.kt | 4 +-- .../creatorranking/CreatorRankingItemTest.kt | 33 ++++++++++++++++--- 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/widget/creatorranking/CreatorRankingItem.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/widget/creatorranking/CreatorRankingItem.kt index 9b2e01e6..da3b2bad 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/v2/widget/creatorranking/CreatorRankingItem.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/v2/widget/creatorranking/CreatorRankingItem.kt @@ -5,12 +5,12 @@ import kr.co.vividnext.sodalive.v2.widget.ranking.RankingChangeType data class CreatorRankingItem( val creatorId: Long, val rank: Int, - val previousRank: Int?, val rankChangeType: RankingChangeType, val rankChangeAmount: Int, val creatorName: String, val imageUrl: String, - val isBlocked: Boolean + val isBlocked: Boolean, + val showRankChange: Boolean = true ) { init { require(rank >= 1) { "rank must be greater than or equal to 1." } diff --git a/app/src/test/java/kr/co/vividnext/sodalive/v2/widget/creatorranking/CreatorRankingItemTest.kt b/app/src/test/java/kr/co/vividnext/sodalive/v2/widget/creatorranking/CreatorRankingItemTest.kt index 2345158e..f5d833a2 100644 --- a/app/src/test/java/kr/co/vividnext/sodalive/v2/widget/creatorranking/CreatorRankingItemTest.kt +++ b/app/src/test/java/kr/co/vividnext/sodalive/v2/widget/creatorranking/CreatorRankingItemTest.kt @@ -1,6 +1,7 @@ package kr.co.vividnext.sodalive.v2.widget.creatorranking import kr.co.vividnext.sodalive.v2.widget.ranking.RankingChangeType +import kr.co.vividnext.sodalive.v2.widget.ranking.RankingChangeType.Increase import org.junit.Assert.assertEquals import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue @@ -45,23 +46,45 @@ class CreatorRankingItemTest { assertEquals("크리에이터 이름", item.displayName(inaccessibleMessage = "접근할 수 없는 정보입니다.")) } + @Test + fun `순위 변동 표시는 기본값이 true이다`() { + val item = sampleItem() + + assertTrue(item.showRankChange) + } + + @Test + fun `순위 변동 표시는 숨김 처리할 수 있다`() { + val item = sampleItem(showRankChange = false) + + assertFalse(item.showRankChange) + } + + @Test + fun `차단된 creator id 아이템은 터치할 수 없다`() { + val item = sampleItem(creatorId = 0L, isBlocked = true) + + assertTrue(item.isInaccessible) + assertFalse(item.isTouchable) + } + private fun sampleItem( creatorId: Long = 1L, rank: Int = 1, - previousRank: Int? = 5, - rankChangeType: RankingChangeType = RankingChangeType.Increase, + rankChangeType: RankingChangeType = Increase, rankChangeAmount: Int = 4, creatorName: String = "크리에이터 이름", imageUrl: String = "https://example.com/image.png", - isBlocked: Boolean = false + isBlocked: Boolean = false, + showRankChange: Boolean = true ) = CreatorRankingItem( creatorId = creatorId, rank = rank, - previousRank = previousRank, rankChangeType = rankChangeType, rankChangeAmount = rankChangeAmount, creatorName = creatorName, imageUrl = imageUrl, - isBlocked = isBlocked + isBlocked = isBlocked, + showRankChange = showRankChange ) }