Persist VaultTimeoutAction as a String (#583)

This commit is contained in:
Brian Yencho 2024-01-11 20:59:57 -06:00 committed by Álison Fernandes
parent 3f7fe90c5c
commit e6c20e0e88
3 changed files with 12 additions and 14 deletions

View file

@ -43,7 +43,7 @@ class SettingsDiskSourceImpl(
}
override fun getVaultTimeoutAction(userId: String): VaultTimeoutAction? =
getInt(key = "${VAULT_TIMEOUT_ACTION_KEY}_$userId")?.let { storedValue ->
getString(key = "${VAULT_TIMEOUT_ACTION_KEY}_$userId")?.let { storedValue ->
VaultTimeoutAction.entries.firstOrNull { storedValue == it.value }
}
@ -55,7 +55,7 @@ class SettingsDiskSourceImpl(
userId: String,
vaultTimeoutAction: VaultTimeoutAction?,
) {
putInt(
putString(
key = "${VAULT_TIMEOUT_ACTION_KEY}_$userId",
value = vaultTimeoutAction?.value,
)

View file

@ -6,15 +6,15 @@ package com.x8bit.bitwarden.data.platform.repository.model
* The [value] is used for consistent storage purposes.
*/
enum class VaultTimeoutAction(
val value: Int,
val value: String,
) {
/**
* The vault should lock when it times out.
*/
LOCK(0),
LOCK("0"),
/**
* The user should be logged out when their vault times out.
*/
LOGOUT(1),
LOGOUT("1"),
}

View file

@ -104,9 +104,9 @@ class SettingsDiskSourceTest {
val vaultTimeoutAction = VaultTimeoutAction.LOCK
fakeSharedPreferences
.edit()
.putInt(
.putString(
"${vaultTimeoutActionBaseKey}_$mockUserId",
vaultTimeoutAction.value,
"0",
)
.apply()
val actual = settingsDiskSource.getVaultTimeoutAction(userId = mockUserId)
@ -149,12 +149,12 @@ class SettingsDiskSourceTest {
userId = mockUserId,
vaultTimeoutAction = vaultTimeoutAction,
)
val actual = fakeSharedPreferences.getInt(
val actual = fakeSharedPreferences.getString(
"${vaultTimeoutActionBaseKey}_$mockUserId",
0,
null,
)
assertEquals(
vaultTimeoutAction.value,
"0",
actual,
)
}
@ -163,16 +163,14 @@ class SettingsDiskSourceTest {
fun `storeVaultTimeoutAction for null values should clear SharedPreferences`() {
val vaultTimeoutActionBaseKey = "bwPreferencesStorage:vaultTimeoutAction"
val mockUserId = "mockUserId"
val previousValue = VaultTimeoutAction.LOCK
val vaultTimeoutActionKey = "${vaultTimeoutActionBaseKey}_$mockUserId"
fakeSharedPreferences.edit {
putInt(vaultTimeoutActionKey, previousValue.value)
putString(vaultTimeoutActionKey, "0")
}
assertTrue(fakeSharedPreferences.contains(vaultTimeoutActionKey))
settingsDiskSource.storeVaultTimeoutAction(
userId = mockUserId,
vaultTimeoutAction = null,
)
assertFalse(fakeSharedPreferences.contains(vaultTimeoutActionKey))
assertNull(fakeSharedPreferences.getString(vaultTimeoutActionKey, null))
}
}