From e11cdd119846c0e7e8720cbdcb0a9bc79a5ef484 Mon Sep 17 00:00:00 2001 From: Matt Kiazyk Date: Tue, 19 Oct 2021 10:54:47 -0500 Subject: [PATCH] Fix up Tests - modify validateSession to use our network wrapper. --- Xcodes/Backend/AppState.swift | 4 ++-- Xcodes/Backend/Environment.swift | 6 +++++- XcodesTests/AppStateTests.swift | 4 ++++ XcodesTests/Environment+Mock.swift | 5 +++++ 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/Xcodes/Backend/AppState.swift b/Xcodes/Backend/AppState.swift index c14ebf4..f6090cb 100644 --- a/Xcodes/Backend/AppState.swift +++ b/Xcodes/Backend/AppState.swift @@ -10,7 +10,7 @@ import os.log class AppState: ObservableObject { private let client = AppleAPI.Client() - + // MARK: - Published Properties @Published var authenticationState: AuthenticationState = .unauthenticated @@ -112,7 +112,7 @@ class AppState: ObservableObject { // MARK: - Authentication func validateSession() -> AnyPublisher { - return client.validateSession() + return Current.network.validateSession() .receive(on: DispatchQueue.main) .handleEvents(receiveCompletion: { completion in if case .failure = completion { diff --git a/Xcodes/Backend/Environment.swift b/Xcodes/Backend/Environment.swift index 6d8af24..ef93c4a 100644 --- a/Xcodes/Backend/Environment.swift +++ b/Xcodes/Backend/Environment.swift @@ -169,7 +169,7 @@ private func _installedXcodes(destination: Path) -> [InstalledXcode] { public struct Network { private static let client = AppleAPI.Client() - public var dataTask: (URLRequest) -> AnyPublisher = { + public var dataTask: (URLRequest) -> AnyPublisher = { AppleAPI.Current.network.session.dataTaskPublisher(for: $0) .mapError { $0 as Error } .eraseToAnyPublisher() @@ -183,6 +183,10 @@ public struct Network { public func downloadTask(with url: URL, to saveLocation: URL, resumingWith resumeData: Data?) -> (progress: Progress, publisher: AnyPublisher<(saveLocation: URL, response: URLResponse), Error>) { return downloadTask(url, saveLocation, resumeData) } + + public var validateSession: () -> AnyPublisher = { + return client.validateSession() + } } public struct Keychain { diff --git a/XcodesTests/AppStateTests.swift b/XcodesTests/AppStateTests.swift index 0c4c165..c708d9d 100644 --- a/XcodesTests/AppStateTests.swift +++ b/XcodesTests/AppStateTests.swift @@ -81,6 +81,10 @@ class AppStateTests: XCTestCase { return true } } + Xcodes.Current.network.validateSession = { + return Just(()) + .setFailureType(to: Error.self).eraseToAnyPublisher() + } Xcodes.Current.network.dataTask = { urlRequest in // Don't have a valid session if urlRequest.url! == URLRequest.olympusSession.url! { diff --git a/XcodesTests/Environment+Mock.swift b/XcodesTests/Environment+Mock.swift index ed91706..8755da5 100644 --- a/XcodesTests/Environment+Mock.swift +++ b/XcodesTests/Environment+Mock.swift @@ -68,6 +68,11 @@ extension Network { .setFailureType(to: Error.self) .eraseToAnyPublisher() ) + }, + validateSession: { + return Just(()) + .setFailureType(to: Error.self) + .eraseToAnyPublisher() } ) }