Fix transition when base URL is actually incorrect (#196)
This commit is contained in:
@@ -2,6 +2,7 @@ package gq.kirmanak.mealient.data.baseurl
|
||||
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import gq.kirmanak.mealient.test.AuthImplTestData.TEST_BASE_URL
|
||||
import gq.kirmanak.mealient.test.AuthImplTestData.VERSION_RESPONSE
|
||||
import gq.kirmanak.mealient.test.BaseUnitTest
|
||||
import io.mockk.coEvery
|
||||
import io.mockk.coVerify
|
||||
@@ -48,10 +49,16 @@ class ServerInfoRepoTest : BaseUnitTest() {
|
||||
|
||||
@Test
|
||||
fun `when tryBaseURL succeeds expect call to storage`() = runTest {
|
||||
coEvery { storage.getBaseURL() } returns null
|
||||
coEvery { dataSource.requestVersion(TEST_BASE_URL) } returns VERSION_RESPONSE
|
||||
subject.tryBaseURL(TEST_BASE_URL)
|
||||
coVerify {
|
||||
storage.storeBaseURL(eq(TEST_BASE_URL))
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `when tryBaseURL succeeds expect response`() = runTest {
|
||||
coEvery { dataSource.requestVersion(TEST_BASE_URL) } returns VERSION_RESPONSE
|
||||
assertThat(subject.tryBaseURL(TEST_BASE_URL)).isEqualTo(Result.success(VERSION_RESPONSE))
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package gq.kirmanak.mealient.test
|
||||
|
||||
import gq.kirmanak.mealient.datasource.models.GetUserInfoResponse
|
||||
import gq.kirmanak.mealient.datasource.models.VersionResponse
|
||||
|
||||
object AuthImplTestData {
|
||||
const val TEST_USERNAME = "TEST_USERNAME"
|
||||
@@ -11,4 +12,5 @@ object AuthImplTestData {
|
||||
|
||||
val FAVORITE_RECIPES_LIST = listOf("cake", "porridge")
|
||||
val USER_INFO = GetUserInfoResponse("userId", FAVORITE_RECIPES_LIST)
|
||||
val VERSION_RESPONSE = VersionResponse("1.0.0")
|
||||
}
|
||||
@@ -9,6 +9,7 @@ import gq.kirmanak.mealient.data.recipes.RecipeRepo
|
||||
import gq.kirmanak.mealient.datasource.NetworkError
|
||||
import gq.kirmanak.mealient.datasource.TrustedCertificatesStore
|
||||
import gq.kirmanak.mealient.test.AuthImplTestData.TEST_BASE_URL
|
||||
import gq.kirmanak.mealient.test.AuthImplTestData.VERSION_RESPONSE
|
||||
import gq.kirmanak.mealient.test.BaseUnitTest
|
||||
import io.mockk.coEvery
|
||||
import io.mockk.coVerify
|
||||
@@ -91,7 +92,7 @@ internal class BaseURLViewModelTest : BaseUnitTest() {
|
||||
|
||||
private fun TestScope.setupSaveBaseUrlWithOldUrl() {
|
||||
coEvery { serverInfoRepo.getUrl() } returns TEST_BASE_URL
|
||||
coEvery { serverInfoRepo.tryBaseURL(any()) } returns Result.success(Unit)
|
||||
coEvery { serverInfoRepo.tryBaseURL(any()) } returns Result.success(VERSION_RESPONSE)
|
||||
subject.saveBaseUrl(TEST_BASE_URL)
|
||||
advanceUntilIdle()
|
||||
}
|
||||
@@ -116,7 +117,7 @@ internal class BaseURLViewModelTest : BaseUnitTest() {
|
||||
|
||||
private fun TestScope.setupSaveBaseUrlWithNewUrl() {
|
||||
coEvery { serverInfoRepo.getUrl() } returns null
|
||||
coEvery { serverInfoRepo.tryBaseURL(any()) } returns Result.success(Unit)
|
||||
coEvery { serverInfoRepo.tryBaseURL(any()) } returns Result.success(VERSION_RESPONSE)
|
||||
subject.saveBaseUrl(TEST_BASE_URL)
|
||||
advanceUntilIdle()
|
||||
}
|
||||
@@ -135,7 +136,7 @@ internal class BaseURLViewModelTest : BaseUnitTest() {
|
||||
coEvery { serverInfoRepo.getUrl() } returns null
|
||||
val err = NetworkError.MalformedUrl(SSLHandshakeException("test"))
|
||||
coEvery { serverInfoRepo.tryBaseURL("https://test") } returns Result.failure(err)
|
||||
coEvery { serverInfoRepo.tryBaseURL("http://test") } returns Result.success(Unit)
|
||||
coEvery { serverInfoRepo.tryBaseURL("http://test") } returns Result.success(VERSION_RESPONSE)
|
||||
subject.saveBaseUrl("test")
|
||||
coVerifyOrder {
|
||||
serverInfoRepo.tryBaseURL("https://test")
|
||||
|
||||
Reference in New Issue
Block a user