fix(creator): 채널 홈 토스트 이벤트를 단발 처리한다

This commit is contained in:
2026-06-15 13:21:34 +09:00
parent a20655badb
commit febd718796
2 changed files with 18 additions and 8 deletions

View File

@@ -21,8 +21,8 @@ class CreatorChannelHomeViewModel(
val homeStateLiveData: LiveData<CreatorChannelHomeUiState> val homeStateLiveData: LiveData<CreatorChannelHomeUiState>
get() = _homeStateLiveData get() = _homeStateLiveData
private val _toastLiveData = MutableLiveData<ToastMessage?>() private val _toastLiveData = MutableLiveData<CreatorChannelEvent<ToastMessage>>()
val toastLiveData: LiveData<ToastMessage?> val toastLiveData: LiveData<CreatorChannelEvent<ToastMessage>>
get() = _toastLiveData get() = _toastLiveData
private val _chatRoomIdLiveData = MutableLiveData<CreatorChannelEvent<Long>>() private val _chatRoomIdLiveData = MutableLiveData<CreatorChannelEvent<Long>>()
@@ -124,7 +124,7 @@ class CreatorChannelHomeViewModel(
} }
private fun showUnknownErrorToast() { private fun showUnknownErrorToast() {
_toastLiveData.value = ToastMessage(resId = R.string.common_error_unknown) _toastLiveData.value = CreatorChannelEvent(ToastMessage(resId = R.string.common_error_unknown))
} }
private fun authToken(): String = "Bearer ${SharedPreferenceManager.token}" private fun authToken(): String = "Bearer ${SharedPreferenceManager.token}"

View File

@@ -92,7 +92,9 @@ class CreatorChannelHomeViewModelTest {
viewModel.loadHome(100L) viewModel.loadHome(100L)
assertTrue(viewModel.homeStateLiveData.requireValue() is CreatorChannelHomeUiState.Error) assertTrue(viewModel.homeStateLiveData.requireValue() is CreatorChannelHomeUiState.Error)
assertEquals(R.string.common_error_unknown, viewModel.toastLiveData.requireValue()?.resId) val toastEvent = viewModel.toastLiveData.requireValue()
assertEquals(R.string.common_error_unknown, toastEvent?.consume()?.resId)
assertEquals(null, toastEvent?.consume())
} }
@Test @Test
@@ -102,7 +104,9 @@ class CreatorChannelHomeViewModelTest {
viewModel.loadHome(100L) viewModel.loadHome(100L)
assertTrue(viewModel.homeStateLiveData.requireValue() is CreatorChannelHomeUiState.Error) assertTrue(viewModel.homeStateLiveData.requireValue() is CreatorChannelHomeUiState.Error)
assertEquals(R.string.common_error_unknown, viewModel.toastLiveData.requireValue()?.resId) val toastEvent = viewModel.toastLiveData.requireValue()
assertEquals(R.string.common_error_unknown, toastEvent?.consume()?.resId)
assertEquals(null, toastEvent?.consume())
} }
@Test @Test
@@ -113,7 +117,9 @@ class CreatorChannelHomeViewModelTest {
val state = viewModel.homeStateLiveData.requireValue() as CreatorChannelHomeUiState.Error val state = viewModel.homeStateLiveData.requireValue() as CreatorChannelHomeUiState.Error
assertEquals("network", state.message) assertEquals("network", state.message)
assertEquals(R.string.common_error_unknown, viewModel.toastLiveData.requireValue()?.resId) val toastEvent = viewModel.toastLiveData.requireValue()
assertEquals(R.string.common_error_unknown, toastEvent?.consume()?.resId)
assertEquals(null, toastEvent?.consume())
} }
@Test @Test
@@ -160,7 +166,9 @@ class CreatorChannelHomeViewModelTest {
val state = viewModel.homeStateLiveData.requireValue() as CreatorChannelHomeUiState.Content val state = viewModel.homeStateLiveData.requireValue() as CreatorChannelHomeUiState.Content
assertEquals(100L, state.header.creatorId) assertEquals(100L, state.header.creatorId)
assertTrue(state.header.isFollow) assertTrue(state.header.isFollow)
assertEquals(R.string.common_error_unknown, viewModel.toastLiveData.requireValue()?.resId) val toastEvent = viewModel.toastLiveData.requireValue()
assertEquals(R.string.common_error_unknown, toastEvent?.consume()?.resId)
assertEquals(null, toastEvent?.consume())
} }
@Test @Test
@@ -202,7 +210,9 @@ class CreatorChannelHomeViewModelTest {
val state = viewModel.homeStateLiveData.requireValue() as CreatorChannelHomeUiState.Content val state = viewModel.homeStateLiveData.requireValue() as CreatorChannelHomeUiState.Content
assertEquals(100L, state.header.creatorId) assertEquals(100L, state.header.creatorId)
assertEquals(R.string.common_error_unknown, viewModel.toastLiveData.requireValue()?.resId) val toastEvent = viewModel.toastLiveData.requireValue()
assertEquals(R.string.common_error_unknown, toastEvent?.consume()?.resId)
assertEquals(null, toastEvent?.consume())
} }
private fun setImmediateRxSchedulers() { private fun setImmediateRxSchedulers() {