From 2b19d008c2aef4c4f6707ed714679a5274c80d26 Mon Sep 17 00:00:00 2001 From: Morgan Zellers Date: Mon, 13 Jul 2026 10:28:18 -0500 Subject: [PATCH 1/2] Updates totp premium alert copy. --- BitwardenResources/Localizations/en.lproj/Localizable.strings | 1 + BitwardenShared/UI/Vault/Extensions/Alert+Vault.swift | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/BitwardenResources/Localizations/en.lproj/Localizable.strings b/BitwardenResources/Localizations/en.lproj/Localizable.strings index 02107ed7d6..2a900a4b8f 100644 --- a/BitwardenResources/Localizations/en.lproj/Localizable.strings +++ b/BitwardenResources/Localizations/en.lproj/Localizable.strings @@ -1169,3 +1169,4 @@ "LineOfCredit" = "Line of credit"; "MoneyMarket" = "Money market"; "Savings" = "Savings"; +"PremiumRequiredTOTPDescriptionLong" = "Authenticator key (TOTP) is a Premium feature. Your current plan does not include access to this feature."; diff --git a/BitwardenShared/UI/Vault/Extensions/Alert+Vault.swift b/BitwardenShared/UI/Vault/Extensions/Alert+Vault.swift index 802d830f2d..54fff73a17 100644 --- a/BitwardenShared/UI/Vault/Extensions/Alert+Vault.swift +++ b/BitwardenShared/UI/Vault/Extensions/Alert+Vault.swift @@ -572,7 +572,7 @@ extension Alert { } let alert = Alert( title: Localizations.premiumSubscriptionRequired, - message: Localizations.premiumRequired, + message: Localizations.premiumRequiredTOTPDescriptionLong, alertActions: [ preferredAction, AlertAction(title: Localizations.cancel, style: .cancel), From 99cf916048a7e199a1087a547f079b23edd928a3 Mon Sep 17 00:00:00 2001 From: Morgan Zellers Date: Mon, 13 Jul 2026 11:35:21 -0500 Subject: [PATCH 2/2] Updates tests. --- BitwardenShared/UI/Vault/Extensions/AlertVaultTests.swift | 2 +- .../UI/Vault/VaultItem/ViewItem/ViewItemProcessorTests.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/BitwardenShared/UI/Vault/Extensions/AlertVaultTests.swift b/BitwardenShared/UI/Vault/Extensions/AlertVaultTests.swift index 5352dc11b9..f99fb9f743 100644 --- a/BitwardenShared/UI/Vault/Extensions/AlertVaultTests.swift +++ b/BitwardenShared/UI/Vault/Extensions/AlertVaultTests.swift @@ -707,7 +707,7 @@ class AlertVaultTests: BitwardenTestCase { // swiftlint:disable:this type_body_l let subject = Alert.totpPremiumRequired { called = true } XCTAssertEqual(subject.title, Localizations.premiumSubscriptionRequired) - XCTAssertEqual(subject.message, Localizations.premiumRequired) + XCTAssertEqual(subject.message, Localizations.premiumRequiredTOTPDescriptionLong) XCTAssertEqual(subject.alertActions.count, 2) XCTAssertEqual(subject.alertActions[0].title, Localizations.upgradeToPremium) XCTAssertEqual(subject.alertActions[0].style, .default) diff --git a/BitwardenShared/UI/Vault/VaultItem/ViewItem/ViewItemProcessorTests.swift b/BitwardenShared/UI/Vault/VaultItem/ViewItem/ViewItemProcessorTests.swift index 5089398da5..2af152ec3e 100644 --- a/BitwardenShared/UI/Vault/VaultItem/ViewItem/ViewItemProcessorTests.swift +++ b/BitwardenShared/UI/Vault/VaultItem/ViewItem/ViewItemProcessorTests.swift @@ -1752,7 +1752,7 @@ class ViewItemProcessorTests: BitwardenTestCase { // swiftlint:disable:this type func test_receive_premiumSubscriptionRequiredTapped_showsAlert() { subject.receive(.premiumSubscriptionRequiredTapped) XCTAssertEqual(coordinator.alertShown.last?.title, Localizations.premiumSubscriptionRequired) - XCTAssertEqual(coordinator.alertShown.last?.message, Localizations.premiumRequired) + XCTAssertEqual(coordinator.alertShown.last?.message, Localizations.premiumRequiredTOTPDescriptionLong) } /// `receive` with `.premiumSubscriptionRequiredTapped` navigates to Premium upgrade when