mirror of
https://github.com/bitwarden/android.git
synced 2026-03-12 05:04:17 -05:00
PM-17845 PM-17718 - Enable Remote Configuration for the import flow & Rename Authenticator Sync Feature Flag Name (#4666)
This commit is contained in:
@@ -50,7 +50,7 @@ sealed class FlagKey<out T : Any> {
|
||||
* Data object holding the key for syncing with the Bitwarden Authenticator app.
|
||||
*/
|
||||
data object AuthenticatorSync : FlagKey<Boolean>() {
|
||||
override val keyName: String = "enable-authenticator-sync-android"
|
||||
override val keyName: String = "enable-pm-bwa-sync"
|
||||
override val defaultValue: Boolean = false
|
||||
override val isRemotelyConfigured: Boolean = true
|
||||
}
|
||||
@@ -88,7 +88,7 @@ sealed class FlagKey<out T : Any> {
|
||||
data object ImportLoginsFlow : FlagKey<Boolean>() {
|
||||
override val keyName: String = "import-logins-flow"
|
||||
override val defaultValue: Boolean = false
|
||||
override val isRemotelyConfigured: Boolean = false
|
||||
override val isRemotelyConfigured: Boolean = true
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,79 +1,141 @@
|
||||
package com.x8bit.bitwarden.data.platform.manager
|
||||
|
||||
import com.x8bit.bitwarden.data.platform.manager.model.FlagKey
|
||||
import org.junit.jupiter.api.Assertions.assertFalse
|
||||
import org.junit.jupiter.api.Assertions.assertEquals
|
||||
import org.junit.jupiter.api.Assertions.assertTrue
|
||||
import org.junit.jupiter.api.Test
|
||||
|
||||
class FlagKeyTest {
|
||||
|
||||
@Test
|
||||
fun `AuthenticatorSync default value should be false`() {
|
||||
assertFalse(FlagKey.AuthenticatorSync.defaultValue)
|
||||
fun `Feature flags have the correct key name set`() {
|
||||
assertEquals(
|
||||
FlagKey.AuthenticatorSync.keyName,
|
||||
"enable-pm-bwa-sync",
|
||||
)
|
||||
assertEquals(
|
||||
FlagKey.EmailVerification.keyName,
|
||||
"email-verification",
|
||||
)
|
||||
assertEquals(
|
||||
FlagKey.OnboardingCarousel.keyName,
|
||||
"native-carousel-flow",
|
||||
)
|
||||
assertEquals(
|
||||
FlagKey.OnboardingFlow.keyName,
|
||||
"native-create-account-flow",
|
||||
)
|
||||
assertEquals(
|
||||
FlagKey.ImportLoginsFlow.keyName,
|
||||
"import-logins-flow",
|
||||
)
|
||||
assertEquals(
|
||||
FlagKey.SshKeyCipherItems.keyName,
|
||||
"ssh-key-vault-item",
|
||||
)
|
||||
assertEquals(
|
||||
FlagKey.VerifiedSsoDomainEndpoint.keyName,
|
||||
"pm-12337-refactor-sso-details-endpoint",
|
||||
)
|
||||
assertEquals(
|
||||
FlagKey.CredentialExchangeProtocolImport.keyName,
|
||||
"cxp-import-mobile",
|
||||
)
|
||||
assertEquals(
|
||||
FlagKey.CredentialExchangeProtocolExport.keyName,
|
||||
"cxp-export-mobile",
|
||||
)
|
||||
assertEquals(
|
||||
FlagKey.AppReviewPrompt.keyName,
|
||||
"app-review-prompt",
|
||||
)
|
||||
assertEquals(
|
||||
FlagKey.CipherKeyEncryption.keyName,
|
||||
"cipher-key-encryption",
|
||||
)
|
||||
assertEquals(
|
||||
FlagKey.NewDeviceTemporaryDismiss.keyName,
|
||||
"new-device-temporary-dismiss",
|
||||
)
|
||||
assertEquals(
|
||||
FlagKey.NewDevicePermanentDismiss.keyName,
|
||||
"new-device-permanent-dismiss",
|
||||
)
|
||||
assertEquals(
|
||||
FlagKey.SingleTapPasskeyCreation.keyName,
|
||||
"single-tap-passkey-creation",
|
||||
)
|
||||
assertEquals(
|
||||
FlagKey.SingleTapPasskeyAuthentication.keyName,
|
||||
"single-tap-passkey-authentication",
|
||||
)
|
||||
assertEquals(
|
||||
FlagKey.IgnoreEnvironmentCheck.keyName,
|
||||
"ignore-environment-check",
|
||||
)
|
||||
assertEquals(
|
||||
FlagKey.MutualTls.keyName,
|
||||
"mutual-tls",
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `AuthenticatorSync is remotely configured value should be true`() {
|
||||
assertTrue(FlagKey.AuthenticatorSync.isRemotelyConfigured)
|
||||
fun `All feature flags have the correct default value set`() {
|
||||
assertTrue(
|
||||
listOf(
|
||||
FlagKey.AuthenticatorSync,
|
||||
FlagKey.EmailVerification,
|
||||
FlagKey.OnboardingCarousel,
|
||||
FlagKey.OnboardingFlow,
|
||||
FlagKey.ImportLoginsFlow,
|
||||
FlagKey.SshKeyCipherItems,
|
||||
FlagKey.VerifiedSsoDomainEndpoint,
|
||||
FlagKey.CredentialExchangeProtocolImport,
|
||||
FlagKey.CredentialExchangeProtocolExport,
|
||||
FlagKey.AppReviewPrompt,
|
||||
FlagKey.NewDeviceTemporaryDismiss,
|
||||
FlagKey.NewDevicePermanentDismiss,
|
||||
FlagKey.SingleTapPasskeyCreation,
|
||||
FlagKey.SingleTapPasskeyAuthentication,
|
||||
).all {
|
||||
!it.defaultValue
|
||||
},
|
||||
)
|
||||
|
||||
assertTrue(FlagKey.CipherKeyEncryption.defaultValue)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `EmailVerification default value should be false`() {
|
||||
assertFalse(FlagKey.EmailVerification.defaultValue)
|
||||
}
|
||||
fun `All feature flags are correctly set to be remotely configured`() {
|
||||
assertTrue(
|
||||
listOf(
|
||||
FlagKey.AuthenticatorSync,
|
||||
FlagKey.EmailVerification,
|
||||
FlagKey.OnboardingCarousel,
|
||||
FlagKey.OnboardingFlow,
|
||||
FlagKey.ImportLoginsFlow,
|
||||
FlagKey.SshKeyCipherItems,
|
||||
FlagKey.VerifiedSsoDomainEndpoint,
|
||||
FlagKey.CredentialExchangeProtocolImport,
|
||||
FlagKey.CredentialExchangeProtocolExport,
|
||||
FlagKey.AppReviewPrompt,
|
||||
FlagKey.CipherKeyEncryption,
|
||||
FlagKey.NewDeviceTemporaryDismiss,
|
||||
FlagKey.NewDevicePermanentDismiss,
|
||||
FlagKey.SingleTapPasskeyCreation,
|
||||
FlagKey.SingleTapPasskeyAuthentication,
|
||||
).all {
|
||||
it.isRemotelyConfigured
|
||||
},
|
||||
)
|
||||
|
||||
@Test
|
||||
fun `OnboardingCarousel default value should be false`() {
|
||||
assertFalse(FlagKey.OnboardingCarousel.defaultValue)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `OnboardingFlow default value should be false`() {
|
||||
assertFalse(FlagKey.OnboardingFlow.defaultValue)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `ImportLoginsFlow default value should be false`() {
|
||||
assertFalse(FlagKey.ImportLoginsFlow.defaultValue)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `SshKeyCipherItems default value should be false`() {
|
||||
assertFalse(FlagKey.SshKeyCipherItems.defaultValue)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `AppReviewPrompt default value should be false`() {
|
||||
assertFalse(FlagKey.AppReviewPrompt.defaultValue)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `NewDevicePermanentDismiss default value should be false`() {
|
||||
assertFalse(FlagKey.NewDevicePermanentDismiss.defaultValue)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `NewDevicePermanentDismiss is remotely configured value should be true`() {
|
||||
assertTrue(FlagKey.NewDevicePermanentDismiss.isRemotelyConfigured)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `NewDeviceTemporaryDismiss default value should be false`() {
|
||||
assertFalse(FlagKey.NewDeviceTemporaryDismiss.defaultValue)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `NewDeviceTemporaryDismiss is remotely configured value should be true`() {
|
||||
assertTrue(FlagKey.NewDeviceTemporaryDismiss.isRemotelyConfigured)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `IgnoreEnvironmentCheck default value should be false`() {
|
||||
assertFalse(FlagKey.IgnoreEnvironmentCheck.defaultValue)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `IgnoreEnvironmentCheck is remotely configured value should be false`() {
|
||||
assertFalse(FlagKey.IgnoreEnvironmentCheck.isRemotelyConfigured)
|
||||
assertTrue(
|
||||
listOf(
|
||||
FlagKey.IgnoreEnvironmentCheck,
|
||||
FlagKey.MutualTls,
|
||||
).all {
|
||||
!it.isRemotelyConfigured
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user