Implement sending logs to developer (#190)
* Save logs to a file * Send logs via email * Enable network logs in release builds * Remove useless chooser title * Append to logs file and ignore I/O errors * Ensure email and password are not logged * Ensure base URL is never logged * Add logs disclaimer
This commit is contained in:
@@ -16,6 +16,7 @@ import io.mockk.coVerify
|
||||
import io.mockk.confirmVerified
|
||||
import io.mockk.every
|
||||
import io.mockk.impl.annotations.MockK
|
||||
import io.mockk.impl.annotations.RelaxedMockK
|
||||
import kotlinx.coroutines.flow.flowOf
|
||||
import kotlinx.coroutines.flow.toList
|
||||
import kotlinx.coroutines.test.runTest
|
||||
@@ -33,12 +34,21 @@ class AuthRepoImplTest : BaseUnitTest() {
|
||||
@MockK(relaxUnitFun = true)
|
||||
lateinit var signOutHandler: SignOutHandler
|
||||
|
||||
@RelaxedMockK
|
||||
lateinit var credentialsLogRedactor: CredentialsLogRedactor
|
||||
|
||||
lateinit var subject: AuthRepo
|
||||
|
||||
@Before
|
||||
override fun setUp() {
|
||||
super.setUp()
|
||||
subject = AuthRepoImpl(storage, dataSource, logger, signOutHandler)
|
||||
subject = AuthRepoImpl(
|
||||
authStorage = storage,
|
||||
authDataSource = dataSource,
|
||||
logger = logger,
|
||||
signOutHandler = signOutHandler,
|
||||
credentialsLogRedactor = credentialsLogRedactor,
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -3,6 +3,7 @@ package gq.kirmanak.mealient.ui.baseurl
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import gq.kirmanak.mealient.data.auth.AuthRepo
|
||||
import gq.kirmanak.mealient.data.baseurl.ServerInfoRepo
|
||||
import gq.kirmanak.mealient.data.baseurl.impl.BaseUrlLogRedactor
|
||||
import gq.kirmanak.mealient.data.recipes.RecipeRepo
|
||||
import gq.kirmanak.mealient.datasource.NetworkError
|
||||
import gq.kirmanak.mealient.datasource.TrustedCertificatesStore
|
||||
@@ -13,8 +14,11 @@ import io.mockk.coEvery
|
||||
import io.mockk.coVerify
|
||||
import io.mockk.coVerifyOrder
|
||||
import io.mockk.impl.annotations.MockK
|
||||
import io.mockk.impl.annotations.RelaxedMockK
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
import kotlinx.coroutines.test.*
|
||||
import kotlinx.coroutines.test.TestScope
|
||||
import kotlinx.coroutines.test.advanceUntilIdle
|
||||
import kotlinx.coroutines.test.runTest
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import java.io.IOException
|
||||
@@ -35,6 +39,9 @@ class BaseURLViewModelTest : BaseUnitTest() {
|
||||
@MockK(relaxUnitFun = true)
|
||||
lateinit var trustedCertificatesStore: TrustedCertificatesStore
|
||||
|
||||
@RelaxedMockK
|
||||
lateinit var baseUrlLogRedactor: BaseUrlLogRedactor
|
||||
|
||||
lateinit var subject: BaseURLViewModel
|
||||
|
||||
@Before
|
||||
@@ -46,6 +53,7 @@ class BaseURLViewModelTest : BaseUnitTest() {
|
||||
recipeRepo = recipeRepo,
|
||||
logger = logger,
|
||||
trustedCertificatesStore = trustedCertificatesStore,
|
||||
baseUrlLogRedactor = baseUrlLogRedactor,
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user