From f57a7d09a26060a54efd32fe6f32bb8372785e69 Mon Sep 17 00:00:00 2001 From: Andre Rosado Date: Fri, 29 May 2026 13:24:13 +0100 Subject: [PATCH 1/2] reverted unwanted changes on AuthRepositoryTest --- .../auth/repository/AuthRepositoryTest.kt | 66 ++++++++++--------- 1 file changed, 34 insertions(+), 32 deletions(-) diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/data/auth/repository/AuthRepositoryTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/data/auth/repository/AuthRepositoryTest.kt index 8f8b908d14..908fdbe3e7 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/data/auth/repository/AuthRepositoryTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/data/auth/repository/AuthRepositoryTest.kt @@ -46,7 +46,6 @@ import com.bitwarden.network.model.OrganizationAutoEnrollStatusResponseJson import com.bitwarden.network.model.OrganizationKeysResponseJson import com.bitwarden.network.model.OrganizationType import com.bitwarden.network.model.PasswordHintResponseJson -import com.bitwarden.network.model.PolicyTypeJson import com.bitwarden.network.model.PreLoginResponseJson import com.bitwarden.network.model.PrevalidateSsoResponseJson import com.bitwarden.network.model.RefreshTokenResponseJson @@ -57,7 +56,6 @@ import com.bitwarden.network.model.ResetPasswordRequestJson import com.bitwarden.network.model.SendVerificationEmailRequestJson import com.bitwarden.network.model.SendVerificationEmailResponseJson import com.bitwarden.network.model.SetPasswordRequestJson -import com.bitwarden.network.model.SyncResponseJson import com.bitwarden.network.model.TrustedDeviceUserDecryptionOptionsJson import com.bitwarden.network.model.TwoFactorAuthMethod import com.bitwarden.network.model.TwoFactorDataModel @@ -69,12 +67,13 @@ import com.bitwarden.network.model.VerifyEmailTokenResponseJson import com.bitwarden.network.model.createMockAccountKeysJson import com.bitwarden.network.model.createMockAccountKeysJsonWithNullFields import com.bitwarden.network.model.createMockOrganizationNetwork -import com.bitwarden.network.model.createMockPolicy import com.bitwarden.network.service.AccountsService import com.bitwarden.network.service.DevicesService import com.bitwarden.network.service.HaveIBeenPwnedService import com.bitwarden.network.service.IdentityService import com.bitwarden.network.service.OrganizationService +import com.bitwarden.policies.PolicyType +import com.bitwarden.policies.PolicyView import com.bitwarden.ui.platform.resource.BitwardenString import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountJson import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountTokensJson @@ -148,6 +147,7 @@ import com.x8bit.bitwarden.data.platform.manager.model.NotificationLogoutData import com.x8bit.bitwarden.data.platform.repository.SettingsRepository import com.x8bit.bitwarden.data.platform.repository.util.FakeEnvironmentRepository import com.x8bit.bitwarden.data.vault.datasource.sdk.VaultSdkSource +import com.x8bit.bitwarden.data.vault.datasource.sdk.model.createMockPolicyView import com.x8bit.bitwarden.data.vault.repository.VaultRepository import com.x8bit.bitwarden.data.vault.repository.model.VaultUnlockData import com.x8bit.bitwarden.data.vault.repository.model.VaultUnlockResult @@ -168,8 +168,6 @@ import kotlinx.coroutines.test.runTest import kotlinx.serialization.json.JsonNull import kotlinx.serialization.json.JsonObject import kotlinx.serialization.json.JsonPrimitive -import kotlinx.serialization.json.buildJsonObject -import kotlinx.serialization.json.put import org.junit.jupiter.api.AfterEach import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Assertions.assertFalse @@ -266,14 +264,14 @@ class AuthRepositoryTest { private val mutableLogoutFlow = bufferedMutableSharedFlow() private val mutableSyncOrgKeysFlow = bufferedMutableSharedFlow() - private val mutableActivePolicyFlow = bufferedMutableSharedFlow>() + private val mutableActivePolicyFlow = bufferedMutableSharedFlow>() private val pushManager: PushManager = mockk { every { logoutFlow } returns mutableLogoutFlow every { syncOrgKeysFlow } returns mutableSyncOrgKeysFlow } private val policyManager: PolicyManager = mockk { every { - getActivePoliciesFlow(type = PolicyTypeJson.MASTER_PASSWORD) + getActivePoliciesFlow(type = PolicyType.MASTER_PASSWORD) } returns mutableActivePolicyFlow } private val logsManager: LogsManager = mockk { @@ -470,18 +468,20 @@ class AuthRepositoryTest { // Set policies that will fail the password. mutableActivePolicyFlow.emit( listOf( - createMockPolicy( - type = PolicyTypeJson.MASTER_PASSWORD, - isEnabled = true, - data = buildJsonObject { - put(key = "minLength", value = 100) - put(key = "minComplexity", value = null) - put(key = "requireUpper", value = null) - put(key = "requireLower", value = null) - put(key = "requireNumbers", value = null) - put(key = "requireSpecial", value = null) - put(key = "enforceOnLogin", value = true) - }, + createMockPolicyView( + type = PolicyType.MASTER_PASSWORD, + enabled = true, + data = """ + { + "minLength":100, + "minComplexity":null, + "requireUpper":null, + "requireLower":null, + "requireNumbers":null, + "requireSpecial":null, + "enforceOnLogin":true + } + """, ), ), ) @@ -7344,20 +7344,22 @@ class AuthRepositoryTest { requireSpecial: Boolean = false, ) { every { - policyManager.getActivePolicies(type = PolicyTypeJson.MASTER_PASSWORD) + policyManager.getActivePolicies(type = PolicyType.MASTER_PASSWORD) } returns listOf( - createMockPolicy( - type = PolicyTypeJson.MASTER_PASSWORD, - isEnabled = true, - data = buildJsonObject { - put(key = "minLength", value = minLength) - put(key = "minComplexity", value = minComplexity) - put(key = "requireUpper", value = requireUpper) - put(key = "requireLower", value = requireLower) - put(key = "requireNumbers", value = requireNumbers) - put(key = "requireSpecial", value = requireSpecial) - put(key = "enforceOnLogin", value = true) - }, + createMockPolicyView( + type = PolicyType.MASTER_PASSWORD, + enabled = true, + data = """ + { + "minLength":$minLength, + "minComplexity":$minComplexity, + "requireUpper":$requireUpper, + "requireLower":$requireLower, + "requireNumbers":$requireNumbers, + "requireSpecial":$requireSpecial, + "enforceOnLogin":true + } + """, ), ) } From 00b2479808ddb0395e35c6c4fd29f048dd8dfd88 Mon Sep 17 00:00:00 2001 From: Andre Rosado Date: Fri, 29 May 2026 13:56:30 +0100 Subject: [PATCH 2/2] chained code on FillAssistManager --- .../data/autofill/manager/FillAssistManagerImpl.kt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/manager/FillAssistManagerImpl.kt b/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/manager/FillAssistManagerImpl.kt index 7fbdf3d870..3ddac24d8b 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/manager/FillAssistManagerImpl.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/manager/FillAssistManagerImpl.kt @@ -63,8 +63,13 @@ class FillAssistManagerImpl( override fun syncIfNecessary() { if (!featureFlagManager.getFeatureFlag(FlagKey.FillAssistTargetingRules)) return - val serverUrl = serverConfigRepository.serverConfigStateFlow.value - ?.serverData?.environment?.fillAssistRulesUrl ?: return + val serverUrl = serverConfigRepository + .serverConfigStateFlow + .value + ?.serverData + ?.environment + ?.fillAssistRulesUrl + ?: return val lastFetch = fillAssistDiskSource.getLastFetchTimestamp(serverUrl) ?: 0L if (clock.millis() - lastFetch < UPDATE_INTERVAL_MS) return if (!syncJob.isCompleted) return