mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-10-31 16:24:11 +00:00
Switch to a custom HomeserverReachability instead of different publishers
This commit is contained in:
@@ -16,7 +16,7 @@ import Testing
|
||||
struct MediaProviderTests {
|
||||
private var mediaLoader: MediaLoaderMock
|
||||
private var imageCache: MockImageCache
|
||||
private var reachabilitySubject = CurrentValueSubject<NetworkMonitorReachability, Never>(.reachable)
|
||||
private var reachabilitySubject = CurrentValueSubject<HomeserverReachability, Never>(.reachable)
|
||||
|
||||
var mediaProvider: MediaProvider!
|
||||
|
||||
@@ -40,7 +40,7 @@ struct MediaProviderTests {
|
||||
|
||||
mediaLoader.loadMediaContentForSourceClosure = { [reachabilitySubject] _ in
|
||||
switch reachabilitySubject.value {
|
||||
case .unreachable:
|
||||
case .unreachable, .suspended:
|
||||
reachabilitySubject.send(.reachable)
|
||||
throw MediaProviderTestsError.error
|
||||
case .reachable:
|
||||
|
||||
@@ -18,13 +18,13 @@ struct SecureBackupLogoutConfirmationScreenViewModelTests {
|
||||
}
|
||||
|
||||
private var secureBackupController: SecureBackupControllerMock
|
||||
private var reachabilitySubject: CurrentValueSubject<NetworkMonitorReachability, Never>
|
||||
private var reachabilitySubject: CurrentValueSubject<HomeserverReachability, Never>
|
||||
|
||||
init() {
|
||||
secureBackupController = SecureBackupControllerMock()
|
||||
secureBackupController.keyBackupState = CurrentValueSubject<SecureBackupKeyBackupState, Never>(.enabled).asCurrentValuePublisher()
|
||||
|
||||
reachabilitySubject = CurrentValueSubject<NetworkMonitorReachability, Never>(.reachable)
|
||||
reachabilitySubject = CurrentValueSubject<HomeserverReachability, Never>(.reachable)
|
||||
|
||||
viewModel = SecureBackupLogoutConfirmationScreenViewModel(secureBackupController: secureBackupController,
|
||||
homeserverReachabilityPublisher: reachabilitySubject.asCurrentValuePublisher())
|
||||
|
||||
@@ -19,7 +19,7 @@ struct UserSessionFlowCoordinatorTests {
|
||||
private let stateMachineFactory = PublishedStateMachineFactory()
|
||||
|
||||
private let networkReachabilitySubject: CurrentValueSubject<NetworkMonitorReachability, Never> = .init(.reachable)
|
||||
private let homeserverReachabilitySubject: CurrentValueSubject<NetworkMonitorReachability, Never> = .init(.reachable)
|
||||
private let homeserverReachabilitySubject: CurrentValueSubject<HomeserverReachability, Never> = .init(.reachable)
|
||||
private var cancellables = Set<AnyCancellable>()
|
||||
|
||||
private var tabCoordinator: NavigationTabCoordinator<UserSessionFlowCoordinator.HomeTab>? {
|
||||
@@ -228,6 +228,14 @@ struct UserSessionFlowCoordinatorTests {
|
||||
// Then the indicator should be hidden now as everything is back to normal
|
||||
#expect(userIndicatorController.submitIndicatorDelayCallsCount == 3)
|
||||
#expect(retractReachabilityIndicatorCallsCount == 2)
|
||||
|
||||
// When the client is suspended.
|
||||
homeserverReachabilitySubject.send(.suspended)
|
||||
try await Task.sleep(for: .milliseconds(100))
|
||||
|
||||
// Then no unreachable indicator should be shown as the pause is intentional.
|
||||
#expect(userIndicatorController.submitIndicatorDelayCallsCount == 3)
|
||||
#expect(retractReachabilityIndicatorCallsCount == 3)
|
||||
}
|
||||
|
||||
// MARK: - Helpers
|
||||
|
||||
Reference in New Issue
Block a user