diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/donation/CreatorChannelDonationFragment.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/donation/CreatorChannelDonationFragment.kt index 380c719a..f20a1a2d 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/donation/CreatorChannelDonationFragment.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/donation/CreatorChannelDonationFragment.kt @@ -71,6 +71,11 @@ class CreatorChannelDonationFragment : BaseFragment + viewModel.postChannelDonation(can, isSecret, message) + } + } } private fun observeViewModel() { @@ -81,6 +86,7 @@ class CreatorChannelDonationFragment : BaseFragment bindError(state) is CreatorChannelDonationUiState.Content -> bindContent(state) } + handleActionToastMessage(state) handleDonationSuccessEvent() } } @@ -90,6 +96,7 @@ class CreatorChannelDonationFragment : BaseFragment state.actionToastMessage + is CreatorChannelDonationUiState.Content -> state.actionToastMessage + else -> null + } ?: return + + Toast.makeText(requireContext(), message, Toast.LENGTH_SHORT).show() + viewModel.consumeActionToastMessage() } private fun handleDonationSuccessEvent() { diff --git a/app/src/test/java/kr/co/vividnext/sodalive/v2/creator/channel/donation/CreatorChannelDonationActionTest.kt b/app/src/test/java/kr/co/vividnext/sodalive/v2/creator/channel/donation/CreatorChannelDonationActionTest.kt index b538f5b6..cfd10348 100644 --- a/app/src/test/java/kr/co/vividnext/sodalive/v2/creator/channel/donation/CreatorChannelDonationActionTest.kt +++ b/app/src/test/java/kr/co/vividnext/sodalive/v2/creator/channel/donation/CreatorChannelDonationActionTest.kt @@ -45,6 +45,19 @@ class CreatorChannelDonationActionTest { assertTrue(fragment.contains("host.onCreatorChannelDonationCompleted()")) } + @Test + fun `후원 fragment source는 empty 중앙 button을 타인 채널에서만 표시하고 동일 후원 요청을 전달한다`() { + val fragment = projectFile( + "app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/donation/CreatorChannelDonationFragment.kt" + ).readText() + + assertTrue(fragment.contains("btnCreatorChannelDonationEmptyWrite.setOnClickListener")) + assertTrue(fragment.contains("btnCreatorChannelDonationEmptyWrite.isVisible = !state.isOwner")) + assertTrue(fragment.contains("btnCreatorChannelDonationWrite.isVisible = false")) + assertTrue(fragment.contains("host.onCreatorChannelDonationRequested { can, isSecret, message ->")) + assertTrue(fragment.contains("viewModel.postChannelDonation(can, isSecret, message)")) + } + @Test fun `후원 fragment source는 성공 이벤트를 content 상태와 독립적으로 전달한다`() { val fragment = projectFile(