Harden driver app realtime release
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package pl.firmatpp.kierowca.data
|
||||
|
||||
import java.io.IOException
|
||||
import java.net.UnknownHostException
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Assert.assertFalse
|
||||
import org.junit.Assert.assertTrue
|
||||
@@ -16,6 +17,23 @@ class ApiErrorMapperTest {
|
||||
assertEquals("Nie udało się połączyć z serwerem. Operacja nie została potwierdzona.", error.message)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun mapsUnknownHostToActionableOfflineMessage() {
|
||||
val error = ApiErrorMapper.map(UnknownHostException("api-intranet.firmatpp.pl"))
|
||||
|
||||
assertEquals(ApiErrorKind.Network, error.kind)
|
||||
assertTrue(error.retryable)
|
||||
assertEquals(
|
||||
"Brak internetu lub połączenia z serwerem. Sprawdź zasięg i spróbuj ponownie.",
|
||||
error.message,
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun doesNotReportExpectedNetworkFailuresAsNonFatal() {
|
||||
assertFalse(ApiErrorMapper.shouldReportNonFatal(UnknownHostException("api-intranet.firmatpp.pl")))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun mapsMobileApiProblemCodes() {
|
||||
val error = ApiErrorMapper.mapProblem(
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
package pl.firmatpp.kierowca.data
|
||||
|
||||
import androidx.datastore.preferences.core.PreferenceDataStoreFactory
|
||||
import java.io.File
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
import kotlinx.coroutines.flow.first
|
||||
import kotlinx.coroutines.test.TestScope
|
||||
import kotlinx.coroutines.test.runTest
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
import org.junit.rules.TemporaryFolder
|
||||
import pl.firmatpp.kierowca.ui.theme.AppThemeMode
|
||||
|
||||
@OptIn(ExperimentalCoroutinesApi::class)
|
||||
class AppPreferencesStoreTest {
|
||||
@get:Rule
|
||||
val temporaryFolder = TemporaryFolder()
|
||||
|
||||
@Test
|
||||
fun startsWithMaterial3ThemeMode() = runTest {
|
||||
val store = preferencesStore("default.preferences_pb")
|
||||
|
||||
assertEquals(AppThemeMode.Material3, store.themeMode.first())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun persistsSelectedThemeMode() = runTest {
|
||||
val file = temporaryFolder.newFile("theme.preferences_pb")
|
||||
val store = preferencesStore(file)
|
||||
|
||||
store.setThemeMode(AppThemeMode.Material3)
|
||||
|
||||
assertEquals(AppThemeMode.Material3, store.themeMode.first())
|
||||
}
|
||||
|
||||
private fun TestScope.preferencesStore(fileName: String): AppPreferencesStore =
|
||||
preferencesStore(temporaryFolder.newFile(fileName))
|
||||
|
||||
private fun TestScope.preferencesStore(file: File): AppPreferencesStore {
|
||||
val dataStore = PreferenceDataStoreFactory.create(scope = backgroundScope) { file }
|
||||
return AppPreferencesStore(dataStore)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user