Rak
@Test fun firstTest() = runBlocking { // given coEvery { repo.getServerTime() } returns Result.success(aDate) coEvery { repo.getUser() } returns ApiResultWrapper.Success(aUserResponse) every { prefs.getPass(any()) } returns null // when val testSubject = HubViewModel(authService, repo, prefs).test(HubState(loading = true)) testSubject.runOnCreate() testSubject.testIntent { loadUser() } // then testSubject.assert(HubState(loading = true)) { states( { copy(loading = false) } ) } }
miqbaldc
HubViewModel
class HubViewModel( private val authService: AuthService, private val repo: MerlinRepository, private val prefs: Preferences, ) : BaseVM(), ContainerHost<HubState, NavigationEvent> { override val container: Container<HubState, NavigationEvent> = container(HubState(loading = true)) { loadUser() } fun loadUser() = intent { repeatOnSubscription { val serverTimeResult = repo.getServerTime() if (serverTimeResult.isFailure) { postSideEffect(GlobalNavigationEvent.NavigateToGenericError) } when (val response = repo.getUser()) {
appmattus
repeatOnSubscription
Mikolaj Leszczynski
A modern programming language that makes developers happier.