fix(home): 커뮤니티 상세 이동을 연결한다
This commit is contained in:
@@ -27,10 +27,10 @@ import kr.co.vividnext.sodalive.audio_content.detail.AudioContentDetailActivity
|
||||
import kr.co.vividnext.sodalive.audio_content.series.detail.SeriesDetailActivity
|
||||
import kr.co.vividnext.sodalive.common.Constants
|
||||
import kr.co.vividnext.sodalive.common.formatUtcRelativeTimeText
|
||||
import kr.co.vividnext.sodalive.explorer.profile.creator_community.all.CreatorCommunityAllActivity
|
||||
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.creator.channel.community.detail.CreatorChannelCommunityDetailActivity
|
||||
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
|
||||
@@ -948,8 +948,8 @@ class HomeMainFragmentLayoutTest {
|
||||
|
||||
assertEquals(AudioContentDetailActivity::class.java.name, audioIntent.component?.className)
|
||||
assertEquals(11L, audioIntent.getLongExtra(Constants.EXTRA_AUDIO_CONTENT_ID, 0L))
|
||||
assertEquals(CreatorCommunityAllActivity::class.java.name, communityIntent.component?.className)
|
||||
assertEquals(13L, communityIntent.getLongExtra(Constants.EXTRA_COMMUNITY_CREATOR_ID, 0L))
|
||||
assertEquals(CreatorChannelCommunityDetailActivity::class.java.name, communityIntent.component?.className)
|
||||
assertEquals(13L, communityIntent.getLongExtra("extra_post_id", 0L))
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -35,11 +35,24 @@ class HomeMainFragmentLoginGuardSourceTest {
|
||||
assertBeforeGuard(source, "val route = item.toHomeRecommendationBannerRoute() ?: return")
|
||||
assertBeforeGuard(source, "val route = item.toHomeRecommendationRecentlyActiveCreatorRoute() ?: return")
|
||||
assertBeforeGuard(source, "val route = item.toHomeRecommendationAiCharacterRoute() ?: return")
|
||||
assertBeforeGuard(source, "val creatorId = item.creatorId.toLongOrNull() ?: return")
|
||||
assertBeforeGuard(source, "val postId = item.postId.toLongOrNull() ?: return")
|
||||
assertFalse(source.contains("requiresAdultContentAccess = true"))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `HomeMainFragment 인기 커뮤니티는 커뮤니티 상세로 이동한다`() {
|
||||
val source = projectFile(
|
||||
"app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragment.kt"
|
||||
).readText()
|
||||
|
||||
val clickSource = source.substringFrom("private fun openPopularCommunityPost(item: FeedItem.Community)")
|
||||
assertTrue(clickSource.contains("CreatorChannelCommunityDetailActivity.newIntent(requireContext(), postId)"))
|
||||
assertFalse(clickSource.contains("CreatorCommunityAllActivity"))
|
||||
assertFalse(clickSource.contains("EXTRA_COMMUNITY_CREATOR_ID"))
|
||||
assertFalse(clickSource.contains("EXTRA_COMMUNITY_POST_ID"))
|
||||
assertFalse(clickSource.contains("EXTRA_COMMUNITY_EXIST_ORDERED"))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `HomeMainFragment 팔로잉 탭 선택은 로그인 가드 통과 후 탭을 전환한다`() {
|
||||
val source = projectFile(
|
||||
@@ -86,9 +99,21 @@ class HomeMainFragmentLoginGuardSourceTest {
|
||||
val clickSource = source.substringFrom("private fun onLiveClick(item: HomeRecommendationLiveUiModel)")
|
||||
assertTrue(clickSource.contains("ensureMainV2NavigationAllowed"))
|
||||
assertTrue(clickSource.contains("liveViewModel.getRoomDetail(item.roomId) { roomDetail ->"))
|
||||
assertBefore(clickSource, "if (!isAdded || view == null) return@getRoomDetail", "requiresAdultContentAccess = roomDetail.isAdult")
|
||||
assertBefore(clickSource, "liveViewModel.getRoomDetail(item.roomId) { roomDetail ->", "requiresAdultContentAccess = roomDetail.isAdult")
|
||||
assertBefore(clickSource, "requiresAdultContentAccess = roomDetail.isAdult", "liveCoordinator.enterLiveRoom(item.roomId, roomDetail)")
|
||||
assertBefore(
|
||||
clickSource,
|
||||
"if (!isAdded || view == null) return@getRoomDetail",
|
||||
"requiresAdultContentAccess = roomDetail.isAdult"
|
||||
)
|
||||
assertBefore(
|
||||
clickSource,
|
||||
"liveViewModel.getRoomDetail(item.roomId) { roomDetail ->",
|
||||
"requiresAdultContentAccess = roomDetail.isAdult"
|
||||
)
|
||||
assertBefore(
|
||||
clickSource,
|
||||
"requiresAdultContentAccess = roomDetail.isAdult",
|
||||
"liveCoordinator.enterLiveRoom(item.roomId, roomDetail)"
|
||||
)
|
||||
assertFalse(clickSource.contains("= Unit"))
|
||||
|
||||
assertTrue(source.contains("import kr.co.vividnext.sodalive.v2.creator.channel.CreatorChannelLiveCoordinator"))
|
||||
@@ -107,14 +132,34 @@ class HomeMainFragmentLoginGuardSourceTest {
|
||||
assertTrue(source.contains("private var isLiveEntryLoading = false"))
|
||||
|
||||
val updateSource = source.substringFrom("private fun updateLoadingDialog()")
|
||||
assertTrue(updateSource.contains("isRecommendationLoading || isCreatorRankingLoading || isFollowingLoading || isLiveEntryLoading"))
|
||||
val expectedLoadingExpression = "isRecommendationLoading || " +
|
||||
"isCreatorRankingLoading || " +
|
||||
"isFollowingLoading || " +
|
||||
"isLiveEntryLoading"
|
||||
assertTrue(updateSource.contains(expectedLoadingExpression))
|
||||
assertTrue(updateSource.contains("loadingDialog.show(screenWidth)"))
|
||||
assertTrue(updateSource.contains("loadingDialog.dismiss()"))
|
||||
|
||||
assertLoadingObserverUsesUpdate(source, "homeRecommendationViewModel.isLoading.observe(viewLifecycleOwner)", "isRecommendationLoading = isLoading")
|
||||
assertLoadingObserverUsesUpdate(source, "homeCreatorRankingViewModel.isLoading.observe(viewLifecycleOwner)", "isCreatorRankingLoading = isLoading")
|
||||
assertLoadingObserverUsesUpdate(source, "homeFollowingViewModel.isLoading.observe(viewLifecycleOwner)", "isFollowingLoading = isLoading")
|
||||
assertLoadingObserverUsesUpdate(source, "liveViewModel.isLoading.observe(viewLifecycleOwner)", "isLiveEntryLoading = isLoading")
|
||||
assertLoadingObserverUsesUpdate(
|
||||
source,
|
||||
"homeRecommendationViewModel.isLoading.observe(viewLifecycleOwner)",
|
||||
"isRecommendationLoading = isLoading"
|
||||
)
|
||||
assertLoadingObserverUsesUpdate(
|
||||
source,
|
||||
"homeCreatorRankingViewModel.isLoading.observe(viewLifecycleOwner)",
|
||||
"isCreatorRankingLoading = isLoading"
|
||||
)
|
||||
assertLoadingObserverUsesUpdate(
|
||||
source,
|
||||
"homeFollowingViewModel.isLoading.observe(viewLifecycleOwner)",
|
||||
"isFollowingLoading = isLoading"
|
||||
)
|
||||
assertLoadingObserverUsesUpdate(
|
||||
source,
|
||||
"liveViewModel.isLoading.observe(viewLifecycleOwner)",
|
||||
"isLiveEntryLoading = isLoading"
|
||||
)
|
||||
}
|
||||
|
||||
private fun assertGuardedStartActivity(source: String, functionSignature: String) {
|
||||
|
||||
Reference in New Issue
Block a user