mirror of
https://github.com/bitwarden/ios.git
synced 2025-12-15 14:00:25 -06:00
98 lines
2.8 KiB
Swift
98 lines
2.8 KiB
Swift
import XCTest
|
|
|
|
@testable import BitwardenShared
|
|
|
|
class AppProcessorTests: BitwardenTestCase {
|
|
// MARK: Properties
|
|
|
|
var appModule: MockAppModule!
|
|
var appSettingStore: MockAppSettingsStore!
|
|
var subject: AppProcessor!
|
|
var syncService: MockSyncService!
|
|
var vaultTimeoutService: MockVaultTimeoutService!
|
|
|
|
// MARK: Setup & Teardown
|
|
|
|
override func setUp() {
|
|
super.setUp()
|
|
|
|
appModule = MockAppModule()
|
|
appSettingStore = MockAppSettingsStore()
|
|
syncService = MockSyncService()
|
|
vaultTimeoutService = MockVaultTimeoutService()
|
|
|
|
subject = AppProcessor(
|
|
appModule: appModule,
|
|
services: ServiceContainer.withMocks(
|
|
appSettingsStore: appSettingStore,
|
|
syncService: syncService,
|
|
vaultTimeoutService: vaultTimeoutService
|
|
)
|
|
)
|
|
}
|
|
|
|
override func tearDown() {
|
|
super.tearDown()
|
|
|
|
appModule = nil
|
|
subject = nil
|
|
syncService = nil
|
|
vaultTimeoutService = nil
|
|
}
|
|
|
|
// MARK: Tests
|
|
|
|
/// `start(navigator:)` builds the AppCoordinator and navigates to vault unlock if there's an
|
|
/// active account.
|
|
func test_start_activeAccount() {
|
|
appSettingStore.state = State.fixture()
|
|
|
|
let rootNavigator = MockRootNavigator()
|
|
|
|
subject.start(appContext: .mainApp, navigator: rootNavigator, window: nil)
|
|
|
|
XCTAssertTrue(appModule.appCoordinator.isStarted)
|
|
XCTAssertEqual(
|
|
appModule.appCoordinator.routes,
|
|
[
|
|
.auth(
|
|
.vaultUnlock(
|
|
.fixture(),
|
|
attemptAutomaticBiometricUnlock: true,
|
|
didSwitchAccountAutomatically: false
|
|
)
|
|
),
|
|
]
|
|
)
|
|
}
|
|
|
|
/// `start(navigator:)` builds the AppCoordinator and navigates to the initial route if provided.
|
|
func test_start_initialRoute() {
|
|
let rootNavigator = MockRootNavigator()
|
|
|
|
subject.start(
|
|
appContext: .mainApp,
|
|
initialRoute: .extensionSetup(.extensionActivation(type: .appExtension)),
|
|
navigator: rootNavigator,
|
|
window: nil
|
|
)
|
|
|
|
XCTAssertTrue(appModule.appCoordinator.isStarted)
|
|
XCTAssertEqual(
|
|
appModule.appCoordinator.routes,
|
|
[.extensionSetup(.extensionActivation(type: .appExtension))]
|
|
)
|
|
}
|
|
|
|
/// `start(navigator:)` builds the AppCoordinator and navigates to the landing view if there
|
|
/// isn't an active account.
|
|
func test_start_noActiveAccount() {
|
|
let rootNavigator = MockRootNavigator()
|
|
|
|
subject.start(appContext: .mainApp, navigator: rootNavigator, window: nil)
|
|
|
|
XCTAssertTrue(appModule.appCoordinator.isStarted)
|
|
XCTAssertEqual(appModule.appCoordinator.routes, [.auth(.landing)])
|
|
}
|
|
}
|