diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/data/platform/manager/DebugMenuFeatureFlagManagerImpl.kt b/app/src/main/kotlin/com/x8bit/bitwarden/data/platform/manager/DebugMenuFeatureFlagManagerImpl.kt index ab0d22e75e..1c92ae0c59 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/data/platform/manager/DebugMenuFeatureFlagManagerImpl.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/data/platform/manager/DebugMenuFeatureFlagManagerImpl.kt @@ -8,8 +8,7 @@ import kotlinx.coroutines.flow.map /** * The [FeatureFlagManager] implementation for the debug menu. This manager uses the * values returned from the [debugMenuRepository] if they are available. otherwise it will use - * the default [FeatureFlagManager]. [FlagKey.Vfo1Foundation] defaults to `true` when no override - * is stored. + * the default [FeatureFlagManager]. */ class DebugMenuFeatureFlagManagerImpl( private val defaultFeatureFlagManager: FeatureFlagManager, @@ -18,23 +17,21 @@ class DebugMenuFeatureFlagManagerImpl( override fun getFeatureFlagFlow(key: FlagKey): Flow { return debugMenuRepository.featureFlagOverridesUpdatedFlow.map { _ -> - getOverrideOrDebugDefault(key) + debugMenuRepository + .getFeatureFlag(key) ?: defaultFeatureFlagManager.getFeatureFlag(key = key) } } override suspend fun getFeatureFlag(key: FlagKey, forceRefresh: Boolean): T { - return getOverrideOrDebugDefault(key) + return debugMenuRepository + .getFeatureFlag(key) ?: defaultFeatureFlagManager.getFeatureFlag(key = key, forceRefresh = forceRefresh) } override fun getFeatureFlag(key: FlagKey): T { - return getOverrideOrDebugDefault(key) + return debugMenuRepository + .getFeatureFlag(key) ?: defaultFeatureFlagManager.getFeatureFlag(key = key) } - - @Suppress("UNCHECKED_CAST") - private fun getOverrideOrDebugDefault(key: FlagKey): T? = - debugMenuRepository.getFeatureFlag(key) - ?: (true as T).takeIf { key == FlagKey.Vfo1Foundation } } diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/data/platform/manager/DebugMenuFeatureFlagManagerTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/data/platform/manager/DebugMenuFeatureFlagManagerTest.kt index 5082b92ee9..0a6cba42da 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/data/platform/manager/DebugMenuFeatureFlagManagerTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/data/platform/manager/DebugMenuFeatureFlagManagerTest.kt @@ -13,7 +13,6 @@ import io.mockk.runs import io.mockk.verify import kotlinx.coroutines.test.runTest import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Assertions.assertFalse import org.junit.jupiter.api.Assertions.assertTrue import org.junit.jupiter.api.Test @@ -110,23 +109,4 @@ class DebugMenuFeatureFlagManagerTest { } verify(exactly = 1) { mockFeatureFlagManager.getFeatureFlag(flagKey) } } - - @Test - fun `Vfo1Foundation defaults to true when no override exists`() { - val flagKey = FlagKey.Vfo1Foundation - every { mockDebugMenuRepository.getFeatureFlag(flagKey) } returns null - every { mockFeatureFlagManager.getFeatureFlag(flagKey) } returns false - - assertTrue(debugMenuFeatureFlagManager.getFeatureFlag(flagKey)) - - verify(exactly = 0) { mockFeatureFlagManager.getFeatureFlag(flagKey) } - } - - @Test - fun `Vfo1Foundation returns the repository override when one exists`() { - val flagKey = FlagKey.Vfo1Foundation - every { mockDebugMenuRepository.getFeatureFlag(flagKey) } returns false - - assertFalse(debugMenuFeatureFlagManager.getFeatureFlag(flagKey)) - } } diff --git a/core/src/main/kotlin/com/bitwarden/core/data/manager/model/FlagKey.kt b/core/src/main/kotlin/com/bitwarden/core/data/manager/model/FlagKey.kt index 479ca3fa44..7a677db8bd 100644 --- a/core/src/main/kotlin/com/bitwarden/core/data/manager/model/FlagKey.kt +++ b/core/src/main/kotlin/com/bitwarden/core/data/manager/model/FlagKey.kt @@ -173,7 +173,7 @@ sealed class FlagKey { */ data object Vfo1Foundation : FlagKey() { override val keyName: String = "vfo1-foundation" - override val defaultValue: Boolean = false + override val defaultValue: Boolean = true } /** diff --git a/core/src/test/kotlin/com/bitwarden/core/data/manager/model/FlagKeyTest.kt b/core/src/test/kotlin/com/bitwarden/core/data/manager/model/FlagKeyTest.kt index 0d5b2df743..68ce07e089 100644 --- a/core/src/test/kotlin/com/bitwarden/core/data/manager/model/FlagKeyTest.kt +++ b/core/src/test/kotlin/com/bitwarden/core/data/manager/model/FlagKeyTest.kt @@ -98,7 +98,6 @@ class FlagKeyTest { FlagKey.FillAssistTargetingRules, FlagKey.ManageDevices, FlagKey.FedRamp, - FlagKey.Vfo1Foundation, FlagKey.SendControls, FlagKey.SendControlsExistingSends, FlagKey.IdentityAutofill, @@ -108,5 +107,6 @@ class FlagKeyTest { !it.defaultValue }, ) + assertTrue(FlagKey.Vfo1Foundation.defaultValue) } }