diff --git a/BitwardenShared/UI/Billing/PremiumUpgradeHelper.swift b/BitwardenShared/UI/Billing/PremiumUpgradeHelper.swift index 413fd74db7..2a8c9ef765 100644 --- a/BitwardenShared/UI/Billing/PremiumUpgradeHelper.swift +++ b/BitwardenShared/UI/Billing/PremiumUpgradeHelper.swift @@ -20,6 +20,7 @@ protocol PremiumUpgradeRoute { extension SendItemRoute: PremiumUpgradeRoute {} extension SendRoute: PremiumUpgradeRoute {} +extension SettingsRoute: PremiumUpgradeRoute {} extension VaultItemRoute: PremiumUpgradeRoute {} extension VaultRoute: PremiumUpgradeRoute {} diff --git a/BitwardenShared/UI/Platform/Settings/Settings/AccountSecurity/DeleteAccount/DeleteAccountProcessor.swift b/BitwardenShared/UI/Platform/Settings/Settings/AccountSecurity/DeleteAccount/DeleteAccountProcessor.swift index 2feb5e94b7..b7abec9d6c 100644 --- a/BitwardenShared/UI/Platform/Settings/Settings/AccountSecurity/DeleteAccount/DeleteAccountProcessor.swift +++ b/BitwardenShared/UI/Platform/Settings/Settings/AccountSecurity/DeleteAccount/DeleteAccountProcessor.swift @@ -56,7 +56,7 @@ final class DeleteAccountProcessor: StateProcessor { // MARK: Types - typealias Services = HasBillingService + typealias Services = HasBillingRepository + & HasBillingService & HasConfigService + & HasEnvironmentService & HasErrorReporter & HasStateService & HasStorefrontService @@ -39,6 +41,13 @@ final class SettingsProcessor: StateProcessor! var delegate: MockSettingsProcessorDelegate! var errorReporter: MockErrorReporter! + var premiumUpgradeHelper: MockPremiumUpgradeHelper! var subject: SettingsProcessor! var stateService: MockStateService! var storefrontService: MockStorefrontService! @@ -34,6 +35,7 @@ class SettingsProcessorTests: BitwardenTestCase { // swiftlint:disable:this type coordinator = MockCoordinator() delegate = MockSettingsProcessorDelegate() errorReporter = MockErrorReporter() + premiumUpgradeHelper = MockPremiumUpgradeHelper() stateService = MockStateService() storefrontService = MockStorefrontService() storefrontService.isUSStorefrontReturnValue = true @@ -50,6 +52,7 @@ class SettingsProcessorTests: BitwardenTestCase { // swiftlint:disable:this type coordinator = nil delegate = nil errorReporter = nil + premiumUpgradeHelper = nil subject = nil stateService = nil storefrontService = nil @@ -71,6 +74,7 @@ class SettingsProcessorTests: BitwardenTestCase { // swiftlint:disable:this type ), state: SettingsState(presentationMode: presentationMode), ) + subject.premiumUpgradeHelper = premiumUpgradeHelper } // MARK: Tests @@ -161,7 +165,7 @@ class SettingsProcessorTests: BitwardenTestCase { // swiftlint:disable:this type func test_receive_dismiss() { subject.receive(.dismiss) - XCTAssertEqual(coordinator.routes.last, .dismiss) + XCTAssertEqual(coordinator.routes.last, .dismiss()) } /// Receiving `.otherPressed` navigates to the other screen. @@ -221,7 +225,7 @@ class SettingsProcessorTests: BitwardenTestCase { // swiftlint:disable:this type await subject.perform(.planPressed) - XCTAssertEqual(coordinator.routes.last, .premiumUpgrade) + XCTAssertTrue(premiumUpgradeHelper.startInAppPremiumUpgradeCalled) XCTAssertEqual(coordinator.loadingOverlaysShown, [LoadingOverlayState(title: Localizations.loading)]) XCTAssertFalse(errorReporter.errors.contains { $0 is GetSubscriptionRequestError }) } @@ -249,7 +253,7 @@ class SettingsProcessorTests: BitwardenTestCase { // swiftlint:disable:this type await subject.perform(.planPressed) - XCTAssertEqual(coordinator.routes.last, .premiumUpgrade) + XCTAssertTrue(premiumUpgradeHelper.startInAppPremiumUpgradeCalled) XCTAssertEqual(coordinator.loadingOverlaysShown, [LoadingOverlayState(title: Localizations.loading)]) } diff --git a/BitwardenShared/UI/Platform/Settings/Settings/Vault/ExportVault/ExportVaultToFile/ExportVaultProcessor.swift b/BitwardenShared/UI/Platform/Settings/Settings/Vault/ExportVault/ExportVaultToFile/ExportVaultProcessor.swift index aee60dff6e..301f38525e 100644 --- a/BitwardenShared/UI/Platform/Settings/Settings/Vault/ExportVault/ExportVaultToFile/ExportVaultProcessor.swift +++ b/BitwardenShared/UI/Platform/Settings/Settings/Vault/ExportVault/ExportVaultToFile/ExportVaultProcessor.swift @@ -64,7 +64,7 @@ final class ExportVaultProcessor: StateProcessor