feat(creator-channel): FanTalk 글쓰기 진입점을 연결한다
This commit is contained in:
@@ -164,6 +164,38 @@ class CreatorChannelActivitySourceTest {
|
||||
assertTrue(source.contains("DmChatRoomActivity.newIntentByCreatorId(this, creatorId)"))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `FanTalk fixed plus source는 Activity overlay와 write result refresh 계약을 연결한다`() {
|
||||
val source = projectFile(
|
||||
"app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelActivity.kt"
|
||||
).readText()
|
||||
val layout = projectFile("app/src/main/res/layout/activity_creator_channel.xml").readText()
|
||||
val repository = projectFile(
|
||||
"app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/data/CreatorChannelRepository.kt"
|
||||
).readText()
|
||||
val appDi = projectFile("app/src/main/java/kr/co/vividnext/sodalive/di/AppDI.kt").readText()
|
||||
|
||||
assertTrue(layout.contains("android:id=\"@+id/btn_creator_channel_fantalk_fixed_plus\""))
|
||||
assertTrue(layout.contains("android:src=\"@drawable/ic_plus_no_bg\""))
|
||||
assertTrue(layout.contains("app:tint=\"@color/white\""))
|
||||
assertTrue(layout.contains("app:layout_constraintBottom_toBottomOf=\"parent\""))
|
||||
assertTrue(layout.contains("app:layout_constraintEnd_toEndOf=\"parent\""))
|
||||
assertTrue(source.contains("private val fanTalkWriteLauncher = registerForActivityResult"))
|
||||
assertTrue(source.contains("CreatorChannelFanTalkWriteActivity.newIntent(this, creatorId)"))
|
||||
assertTrue(source.contains("private fun openFanTalkWrite()"))
|
||||
assertTrue(source.contains("if (creatorId <= 0L) return"))
|
||||
assertTrue(source.contains("if (SharedPreferenceManager.token.isBlank())"))
|
||||
assertTrue(source.contains("showLoginActivity()"))
|
||||
assertTrue(source.contains("refreshCreatorChannelFanTalk()"))
|
||||
assertTrue(source.contains("homeActionDelegate?.refreshHome()"))
|
||||
assertTrue(source.contains("onCreatorChannelFanTalkWriteClicked()"))
|
||||
assertTrue(source.contains("onCreatorChannelFanTalkFloatingButtonVisibilityChanged(isVisible: Boolean)"))
|
||||
assertTrue(source.contains("updateFanTalkFixedPlusVisibility()"))
|
||||
assertTrue(repository.contains("fun writeFanTalk(creatorId: Long, content: String, token: String)"))
|
||||
assertTrue(repository.contains("parentCheersId = null"))
|
||||
assertTrue(appDi.contains("CreatorChannelFanTalkWriteViewModel"))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `Phase 10 컨테이너 layout은 TabLayout과 ViewPager2를 가진다`() {
|
||||
val layout = projectFile("app/src/main/res/layout/activity_creator_channel.xml").readText()
|
||||
|
||||
@@ -72,7 +72,8 @@ class CreatorChannelFanTalkFragmentLayoutTest {
|
||||
assertTrue(layout.contains("android:background=\"@drawable/bg_creator_channel_fantalk_empty_button\""))
|
||||
assertTrue(layout.contains("android:layout_marginStart=\"@dimen/spacing_6\""))
|
||||
assertTrue(layout.contains("tools:listitem=\"@layout/item_creator_channel_fantalk\""))
|
||||
assertTrue(layout.contains("@drawable/ic_new_fantalk_plus"))
|
||||
assertFalse(layout.contains("@drawable/ic_new_fantalk_plus"))
|
||||
assertTrue(layout.contains("@drawable/ic_plus_no_bg"))
|
||||
assertEquals(ContextCompat.getColor(root.context, R.color.gray_500), emptyMessage.currentTextColor)
|
||||
assertEquals(ContextCompat.getColor(root.context, R.color.white), emptyButtonLabel.currentTextColor)
|
||||
assertTrue(
|
||||
@@ -193,6 +194,27 @@ class CreatorChannelFanTalkFragmentLayoutTest {
|
||||
assertTrue(adapter.contains("tvCreatorChannelFantalkReport.setOnClickListener { onReportClick(item) }"))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `팬톡 write entry source는 empty 버튼과 fixed plus visibility를 Host로 위임한다`() {
|
||||
val fragment = projectFile(
|
||||
"app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/fantalk/CreatorChannelFanTalkFragment.kt"
|
||||
).readText()
|
||||
val layout = projectFile("app/src/main/res/layout/fragment_creator_channel_fantalk.xml").readText()
|
||||
|
||||
assertTrue(fragment.contains("fun onCreatorChannelFanTalkWriteClicked()"))
|
||||
assertTrue(fragment.contains("fun onCreatorChannelFanTalkFloatingButtonVisibilityChanged(isVisible: Boolean)"))
|
||||
assertTrue(fragment.contains("layoutCreatorChannelFantalkEmptyWriteButton.setOnClickListener"))
|
||||
assertTrue(fragment.contains("host.onCreatorChannelFanTalkWriteClicked()"))
|
||||
assertTrue(fragment.contains("host.onCreatorChannelFanTalkFloatingButtonVisibilityChanged(true)"))
|
||||
assertTrue(fragment.contains("host.onCreatorChannelFanTalkFloatingButtonVisibilityChanged(false)"))
|
||||
assertFalse(fragment.contains("btnCreatorChannelFantalkWrite.setOnClickListener { }"))
|
||||
assertFalse(fragment.contains("btnCreatorChannelFantalkWrite.isVisible = true"))
|
||||
assertTrue(layout.contains("@+id/layout_creator_channel_fantalk_empty_write_button"))
|
||||
assertTrue(layout.contains("android:id=\"@+id/btn_creator_channel_fantalk_write\""))
|
||||
assertTrue(layout.contains("android:visibility=\"gone\""))
|
||||
assertFalse(layout.contains("@drawable/ic_new_fantalk_plus"))
|
||||
}
|
||||
|
||||
private fun inflateView(layoutResId: Int): View {
|
||||
val context = ApplicationProvider.getApplicationContext<Context>()
|
||||
return LayoutInflater.from(context).inflate(layoutResId, null, false)
|
||||
|
||||
Reference in New Issue
Block a user