Ensure authentication token is always sent when it exists (#193)

* Ensure auth token is sent if it is present

* Allow using login token for other requests while API token is created

* Update version code
This commit is contained in:
Kirill Kamakin
2023-12-28 11:05:20 +01:00
committed by GitHub
parent ffdac4c616
commit 94f12820bc
12 changed files with 56 additions and 42 deletions

View File

@@ -4,7 +4,6 @@ import com.google.common.truth.Truth.assertThat
import gq.kirmanak.mealient.data.auth.AuthDataSource
import gq.kirmanak.mealient.data.auth.AuthRepo
import gq.kirmanak.mealient.data.auth.AuthStorage
import gq.kirmanak.mealient.datasource.SignOutHandler
import gq.kirmanak.mealient.datasource.runCatchingExceptCancel
import gq.kirmanak.mealient.test.AuthImplTestData.TEST_API_TOKEN
import gq.kirmanak.mealient.test.AuthImplTestData.TEST_PASSWORD
@@ -31,9 +30,6 @@ class AuthRepoImplTest : BaseUnitTest() {
@MockK(relaxUnitFun = true)
lateinit var storage: AuthStorage
@MockK(relaxUnitFun = true)
lateinit var signOutHandler: SignOutHandler
@RelaxedMockK
lateinit var credentialsLogRedactor: CredentialsLogRedactor
@@ -46,7 +42,6 @@ class AuthRepoImplTest : BaseUnitTest() {
authStorage = storage,
authDataSource = dataSource,
logger = logger,
signOutHandler = signOutHandler,
credentialsLogRedactor = credentialsLogRedactor,
)
}

View File

@@ -8,9 +8,11 @@ import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.android.testing.HiltAndroidTest
import gq.kirmanak.mealient.data.auth.AuthStorage
import gq.kirmanak.mealient.data.auth.impl.AuthStorageImpl.Companion.AUTH_TOKEN_KEY
import gq.kirmanak.mealient.datasource.TokenChangeListener
import gq.kirmanak.mealient.test.AuthImplTestData.TEST_TOKEN
import gq.kirmanak.mealient.test.HiltRobolectricTest
import io.mockk.MockKAnnotations
import io.mockk.impl.annotations.MockK
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.test.runTest
import org.junit.Before
@@ -28,11 +30,14 @@ class AuthStorageImplTest : HiltRobolectricTest() {
lateinit var sharedPreferences: SharedPreferences
@MockK
lateinit var tokenChangeListener: TokenChangeListener
@Before
fun setUp() {
MockKAnnotations.init(this)
sharedPreferences = context.getSharedPreferences("test", Context.MODE_PRIVATE)
subject = AuthStorageImpl(sharedPreferences, logger)
subject = AuthStorageImpl(sharedPreferences, tokenChangeListener, logger)
}
@Test