feat(creator): 후원 empty 랭킹 상태를 유지한다
This commit is contained in:
@@ -151,10 +151,11 @@ class CreatorChannelDonationViewModel(
|
|||||||
val data = response.data
|
val data = response.data
|
||||||
if (response.success && data != null) {
|
if (response.success && data != null) {
|
||||||
val donations = data.toDonationUiModels()
|
val donations = data.toDonationUiModels()
|
||||||
|
val rankings = data.toDonationRankingUiModels()
|
||||||
_donationStateLiveData.value = if (donations.isEmpty() || data.donationCount == 0) {
|
_donationStateLiveData.value = if (donations.isEmpty() || data.donationCount == 0) {
|
||||||
CreatorChannelDonationUiState.Empty(data.donationCount, isOwner)
|
CreatorChannelDonationUiState.Empty(data.donationCount, rankings, isOwner)
|
||||||
} else {
|
} else {
|
||||||
data.toContentState(donations)
|
data.toContentState(rankings, donations)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
_donationStateLiveData.value = CreatorChannelDonationUiState.Error(response.message)
|
_donationStateLiveData.value = CreatorChannelDonationUiState.Error(response.message)
|
||||||
@@ -205,10 +206,11 @@ class CreatorChannelDonationViewModel(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun CreatorChannelDonationTabResponse.toContentState(
|
private fun CreatorChannelDonationTabResponse.toContentState(
|
||||||
|
rankings: List<CreatorChannelDonationRankingUiModel>,
|
||||||
donations: List<CreatorChannelDonationUiModel>
|
donations: List<CreatorChannelDonationUiModel>
|
||||||
) = CreatorChannelDonationUiState.Content(
|
) = CreatorChannelDonationUiState.Content(
|
||||||
donationCount = donationCount,
|
donationCount = donationCount,
|
||||||
rankings = toDonationRankingUiModels(),
|
rankings = rankings,
|
||||||
donations = donations,
|
donations = donations,
|
||||||
page = page,
|
page = page,
|
||||||
size = size,
|
size = size,
|
||||||
@@ -234,6 +236,7 @@ sealed interface CreatorChannelDonationUiState {
|
|||||||
data object Loading : CreatorChannelDonationUiState
|
data object Loading : CreatorChannelDonationUiState
|
||||||
data class Empty(
|
data class Empty(
|
||||||
val donationCount: Int,
|
val donationCount: Int,
|
||||||
|
val rankings: List<CreatorChannelDonationRankingUiModel>,
|
||||||
val isOwner: Boolean,
|
val isOwner: Boolean,
|
||||||
val actionToastMessage: String? = null
|
val actionToastMessage: String? = null
|
||||||
) : CreatorChannelDonationUiState
|
) : CreatorChannelDonationUiState
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ import kr.co.vividnext.sodalive.v2.creator.channel.donation.data.CreatorChannelD
|
|||||||
import kr.co.vividnext.sodalive.v2.creator.channel.donation.data.MemberDonationRankingResponse
|
import kr.co.vividnext.sodalive.v2.creator.channel.donation.data.MemberDonationRankingResponse
|
||||||
import org.junit.After
|
import org.junit.After
|
||||||
import org.junit.Assert.assertEquals
|
import org.junit.Assert.assertEquals
|
||||||
import org.junit.Assert.assertTrue
|
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
@@ -80,15 +79,17 @@ class CreatorChannelDonationViewModelTest {
|
|||||||
|
|
||||||
val state = viewModel.donationStateLiveData.requireValue() as CreatorChannelDonationUiState.Empty
|
val state = viewModel.donationStateLiveData.requireValue() as CreatorChannelDonationUiState.Empty
|
||||||
assertEquals(0, state.donationCount)
|
assertEquals(0, state.donationCount)
|
||||||
|
assertEquals(listOf(10L), state.rankings.map { it.userId })
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `표시 가능한 donations가 없으면 Empty 상태가 된다`() {
|
fun `표시 가능한 donations가 없으면 랭킹을 유지한 Empty 상태가 된다`() {
|
||||||
stubGetDonations(response = Single.just(ApiResponse(true, donationResponse(ids = emptyList()), null)))
|
stubGetDonations(response = Single.just(ApiResponse(true, donationResponse(ids = emptyList()), null)))
|
||||||
|
|
||||||
viewModel.loadDonations(100L, isOwner = false)
|
viewModel.loadDonations(100L, isOwner = false)
|
||||||
|
|
||||||
assertTrue(viewModel.donationStateLiveData.requireValue() is CreatorChannelDonationUiState.Empty)
|
val state = viewModel.donationStateLiveData.requireValue() as CreatorChannelDonationUiState.Empty
|
||||||
|
assertEquals(listOf(10L), state.rankings.map { it.userId })
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
Reference in New Issue
Block a user