metatext/Preview/PreviewMocks.swift

125 lines
4 KiB
Swift
Raw Normal View History

2020-07-31 21:40:57 +00:00
// Copyright © 2020 Metabolist. All rights reserved.
import Foundation
import Combine
2020-08-31 01:40:58 +00:00
import HTTP
2020-08-30 23:33:11 +00:00
import Mastodon
2020-08-31 18:57:02 +00:00
import MastodonStubs
import ServiceLayer
import ServiceLayerMocks
2020-07-31 21:40:57 +00:00
// swiftlint:disable force_try
2020-08-30 23:59:49 +00:00
private let decoder = APIDecoder()
2020-07-31 21:40:57 +00:00
private var cancellables = Set<AnyCancellable>()
2020-08-02 22:23:01 +00:00
private let devInstanceURL = URL(string: "https://mastodon.social")!
private let devIdentityID = UUID(uuidString: "E621E1F8-C36C-495A-93FC-0C247A3E6E5F")!
2020-08-02 22:23:01 +00:00
private let devAccessToken = "DEVELOPMENT_ACCESS_TOKEN"
2020-07-31 21:40:57 +00:00
extension Account {
2020-08-31 18:57:02 +00:00
static let development = try! decoder.decode(Account.self,
from: AccountEndpoint.verifyCredentials.data(url: devInstanceURL)!)
2020-07-31 21:40:57 +00:00
}
extension Instance {
2020-08-31 18:57:02 +00:00
static let development = try! decoder.decode(Instance.self,
from: InstanceEndpoint.instance.data(url: devInstanceURL)!)
2020-07-31 21:40:57 +00:00
}
2020-08-02 22:23:01 +00:00
extension AppEnvironment {
static let development = AppEnvironment(
2020-08-12 07:24:39 +00:00
session: Session(configuration: .stubbing),
webAuthSessionType: SuccessfulMockWebAuthSession.self,
2020-08-18 05:13:37 +00:00
keychainServiceType: MockKeychainService.self,
userDefaults: MockUserDefaults(),
inMemoryContent: true)
}
2020-08-26 21:35:06 +00:00
extension AllIdentitiesService {
2020-08-31 10:21:01 +00:00
static let fresh = try! AllIdentitiesService(environment: .development)
static var development: Self = {
let allIdentitiesService = try! AllIdentitiesService(environment: .development)
allIdentitiesService.authorizeIdentity(id: devIdentityID, instanceURL: devInstanceURL)
.receive(on: ImmediateScheduler.shared)
.sink { _ in } receiveValue: { _ in }
.store(in: &cancellables)
// let identityService = try! allIdentitiesService.identityService(id: devIdentityID)
//
// identityService.verifyCredentials()
// .receive(on: ImmediateScheduler.shared)
// .sink { _ in } receiveValue: { _ in }
// .store(in: &cancellables)
//
// identityService.refreshInstance()
// .receive(on: ImmediateScheduler.shared)
// .sink { _ in } receiveValue: { _ in }
// .store(in: &cancellables)
return allIdentitiesService
} ()
2020-08-09 05:37:04 +00:00
}
2020-08-08 23:08:47 +00:00
extension IdentityService {
2020-08-26 21:35:06 +00:00
static let development = try! AllIdentitiesService.development.identityService(id: devIdentityID)
2020-08-08 06:01:45 +00:00
}
extension UserNotificationService {
static let development = UserNotificationService(userNotificationCenter: .current())
2020-08-12 07:24:39 +00:00
}
2020-08-03 15:20:51 +00:00
extension RootViewModel {
2020-08-12 07:24:39 +00:00
static let development = RootViewModel(
appDelegate: AppDelegate(),
2020-08-26 21:35:06 +00:00
allIdentitiesService: .development,
userNotificationService: .development)
2020-08-09 05:37:04 +00:00
}
extension AddIdentityViewModel {
static let development = RootViewModel.development.addIdentityViewModel()
2020-08-03 15:20:51 +00:00
}
2020-08-27 04:25:28 +00:00
extension TabNavigationViewModel {
static let development = RootViewModel.development.tabNavigationViewModel!
2020-08-03 15:20:51 +00:00
}
2020-08-07 03:57:52 +00:00
extension SecondaryNavigationViewModel {
2020-08-27 04:25:28 +00:00
static let development = TabNavigationViewModel.development.secondaryNavigationViewModel()
2020-07-31 21:40:57 +00:00
}
2020-08-04 20:26:09 +00:00
extension IdentitiesViewModel {
2020-08-08 23:08:47 +00:00
static let development = IdentitiesViewModel(identityService: .development)
2020-08-04 20:26:09 +00:00
}
2020-08-29 03:50:58 +00:00
extension ListsViewModel {
static let development = ListsViewModel(identityService: .development)
}
2020-08-07 10:59:48 +00:00
extension PreferencesViewModel {
2020-08-08 23:08:47 +00:00
static let development = PreferencesViewModel(identityService: .development)
2020-08-07 10:59:48 +00:00
}
extension PostingReadingPreferencesViewModel {
2020-08-08 23:08:47 +00:00
static let development = PostingReadingPreferencesViewModel(identityService: .development)
2020-08-07 10:14:14 +00:00
}
2020-08-14 21:41:55 +00:00
extension NotificationTypesPreferencesViewModel {
static let development = NotificationTypesPreferencesViewModel(identityService: .development)
}
2020-08-29 10:26:26 +00:00
extension FiltersViewModel {
static let development = FiltersViewModel(identityService: .development)
}
extension EditFilterViewModel {
2020-08-30 23:33:11 +00:00
static let development = EditFilterViewModel(filter: Filter.new, identityService: .development)
2020-08-29 10:26:26 +00:00
}
2020-08-26 21:20:44 +00:00
extension StatusListViewModel {
2020-08-26 21:35:06 +00:00
static let development = StatusListViewModel(
statusListService: IdentityService.development.service(timeline: .home))
2020-08-18 05:13:37 +00:00
}
2020-07-31 21:40:57 +00:00
// swiftlint:enable force_try