feat(home): AI 캐릭터 크리에이터 이동을 연결한다
This commit is contained in:
@@ -32,6 +32,7 @@ import kr.co.vividnext.sodalive.settings.event.EventDetailActivity
|
||||
import kr.co.vividnext.sodalive.settings.event.EventItem
|
||||
import kr.co.vividnext.sodalive.v2.creator.channel.CreatorChannelActivity
|
||||
import kr.co.vividnext.sodalive.v2.main.home.data.HomeActiveCreatorItem
|
||||
import kr.co.vividnext.sodalive.v2.main.home.data.HomeAiCharacterItem
|
||||
import kr.co.vividnext.sodalive.v2.main.home.data.HomeBannerItem
|
||||
import kr.co.vividnext.sodalive.v2.main.home.data.HomeCreatorItem
|
||||
import kr.co.vividnext.sodalive.v2.main.home.data.HomeFirstAudioContentItem
|
||||
@@ -40,6 +41,7 @@ import kr.co.vividnext.sodalive.v2.main.home.data.HomeLiveItem
|
||||
import kr.co.vividnext.sodalive.v2.main.home.model.HomeRecommendationBannerSection
|
||||
import kr.co.vividnext.sodalive.v2.main.home.model.HomeRecommendationBannerRoute
|
||||
import kr.co.vividnext.sodalive.v2.main.home.model.HomeRecommendationBannerUiModel
|
||||
import kr.co.vividnext.sodalive.v2.main.home.model.HomeRecommendationAiCharacterRoute
|
||||
import kr.co.vividnext.sodalive.v2.main.home.model.HomeRecommendationFirstAudioContentUiModel
|
||||
import kr.co.vividnext.sodalive.v2.main.home.model.HomeRecommendationCreatorUiModel
|
||||
import kr.co.vividnext.sodalive.v2.main.home.model.HomeRecommendationGenreCreatorGroupUiModel
|
||||
@@ -53,6 +55,8 @@ import kr.co.vividnext.sodalive.v2.main.home.model.HomeRecommendationRecentlyAct
|
||||
import kr.co.vividnext.sodalive.v2.common.CreatorActivityType
|
||||
import kr.co.vividnext.sodalive.v2.main.home.model.toHomeRecommendationBannerIntent
|
||||
import kr.co.vividnext.sodalive.v2.main.home.model.toHomeRecommendationBannerRoute
|
||||
import kr.co.vividnext.sodalive.v2.main.home.model.toHomeRecommendationAiCharacterIntent
|
||||
import kr.co.vividnext.sodalive.v2.main.home.model.toHomeRecommendationAiCharacterRoute
|
||||
import kr.co.vividnext.sodalive.v2.main.home.model.toHomeRecommendationRecentlyActiveCreatorIntent
|
||||
import kr.co.vividnext.sodalive.v2.main.home.model.toHomeRecommendationRecentlyActiveCreatorRoute
|
||||
import kr.co.vividnext.sodalive.v2.main.home.model.visibleHomePopularCommunityPosts
|
||||
@@ -1087,6 +1091,41 @@ class HomeMainFragmentLayoutTest {
|
||||
assertEquals(13L, communityIntent.getLongExtra(Constants.EXTRA_COMMUNITY_CREATOR_ID, 0L))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `home ai character mapper preserves creator id for routing and character id for display`() {
|
||||
val item = HomeAiCharacterItem(
|
||||
characterId = 11L,
|
||||
creatorId = 22L,
|
||||
name = "캐릭터",
|
||||
description = "설명",
|
||||
profileImage = "https://example.com/character.png",
|
||||
totalChatCount = 33L,
|
||||
originalWorkTitle = "원작"
|
||||
).toUiModel()
|
||||
|
||||
assertEquals(22L, item.creatorId)
|
||||
assertEquals(11L, item.item.characterId)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `home ai character route uses creator id and ignores invalid ids`() {
|
||||
assertEquals(
|
||||
HomeRecommendationAiCharacterRoute.Creator(22L),
|
||||
aiCharacter(creatorId = 22L).toHomeRecommendationAiCharacterRoute()
|
||||
)
|
||||
assertEquals(null, aiCharacter(creatorId = 0L).toHomeRecommendationAiCharacterRoute())
|
||||
assertEquals(null, aiCharacter(creatorId = -1L).toHomeRecommendationAiCharacterRoute())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `home ai character route creates creator channel intent`() {
|
||||
val context = ApplicationProvider.getApplicationContext<Context>()
|
||||
val intent = HomeRecommendationAiCharacterRoute.Creator(22L).toHomeRecommendationAiCharacterIntent(context)
|
||||
|
||||
assertEquals(CreatorChannelActivity::class.java.name, intent.component?.className)
|
||||
assertEquals(22L, intent.getLongExtra(CreatorChannelActivity.EXTRA_CREATOR_ID, 0L))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `home popular community adapter applies blur when locked paid post image is loaded`() {
|
||||
val source = projectFile(
|
||||
@@ -1517,6 +1556,18 @@ class HomeMainFragmentLayoutTest {
|
||||
)
|
||||
}
|
||||
|
||||
private fun aiCharacter(creatorId: Long): kr.co.vividnext.sodalive.v2.main.home.model.HomeRecommendationAiCharacterUiModel {
|
||||
return HomeAiCharacterItem(
|
||||
characterId = 11L,
|
||||
creatorId = creatorId,
|
||||
name = "캐릭터",
|
||||
description = "설명",
|
||||
profileImage = null,
|
||||
totalChatCount = 33L,
|
||||
originalWorkTitle = null
|
||||
).toUiModel()
|
||||
}
|
||||
|
||||
private fun popularCommunityData(
|
||||
audioUrl: String?,
|
||||
createdAt: String = "2분 전"
|
||||
|
||||
Reference in New Issue
Block a user