Skip to content

Commit

Permalink
CHANGE get() on viewstring
Browse files Browse the repository at this point in the history
CHANGE fixed unit tests
  • Loading branch information
Frank1234 committed Nov 13, 2023
1 parent 15e092e commit b52554f
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 9 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package nl.q42.template.ui.compose

import androidx.compose.runtime.Composable
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.res.pluralStringResource
import androidx.compose.ui.res.stringResource
import nl.q42.template.ui.presentation.ViewStateString
Expand All @@ -10,12 +9,12 @@ import nl.q42.template.ui.presentation.ViewStateString
* Resolve a ViewStateString to a string from a Compose context.
*/
@Composable
fun ViewStateString.resolve(): String {
fun ViewStateString.get(): String {
return when (this) {
is ViewStateString.Res -> {
// Map any nested ViewStateStrings to their resolved values.
val resolvedArguments =
this.formatArgs.map { if (it is ViewStateString) it.resolve() else it }
this.formatArgs.map { if (it is ViewStateString) it.get() else it }
.toTypedArray()
stringResource(id = this.stringRes, formatArgs = resolvedArguments)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment.Companion.CenterHorizontally
import androidx.compose.ui.Modifier
import nl.q42.template.presentation.home.HomeViewState
import nl.q42.template.ui.compose.resolve
import nl.q42.template.ui.compose.get
import nl.q42.template.ui.presentation.toViewStateString
import nl.q42.template.ui.theme.PreviewAppTheme
import nl.q42.template.ui.theme.PreviewLightDark
Expand All @@ -34,7 +34,7 @@ internal fun HomeContent(
*/
when (viewState) {
is HomeViewState.Data -> viewState.userEmailTitle?.let { userEmailTitle ->
Text(text = userEmailTitle.resolve())
Text(text = userEmailTitle.get())
}

HomeViewState.Empty -> {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import app.cash.turbine.test
import io.mockk.coEvery
import io.mockk.mockk
import junit.framework.TestCase.assertEquals
import junit.framework.TestCase.assertTrue
import kotlinx.coroutines.delay
import kotlinx.coroutines.test.runTest
import nl.q42.template.actionresult.domain.ActionResult
Expand All @@ -30,10 +31,11 @@ class HomeViewModelTest() {
val viewModel = HomeViewModel(getUserUseCaseMock, mockk())

viewModel.uiState.test {
val expectedData: HomeViewState = HomeViewState.Data(ViewStateString.Basic("test@test.com"))

assertEquals(HomeViewState.Loading, awaitItem())
assertEquals(expectedData, awaitItem())
val viewState = awaitItem()
assertTrue(viewState is HomeViewState.Data)
assertTrue((viewState as HomeViewState.Data).userEmailTitle is ViewStateString.Res)
}
}

Expand All @@ -49,8 +51,9 @@ class HomeViewModelTest() {
val viewModel = HomeViewModel(getUserUseCaseMock, mockk())

viewModel.uiState.test {
val expectedData: HomeViewState = HomeViewState.Data(ViewStateString.Basic("test@test.com"))
assertEquals(expectedData, awaitItem())
val viewState = awaitItem()
assertTrue(viewState is HomeViewState.Data)
assertTrue((viewState as HomeViewState.Data).userEmailTitle is ViewStateString.Res)
}
}
}

0 comments on commit b52554f

Please sign in to comment.