Skip to content
Snippets Groups Projects
Commit f97470fb authored by Dariusz Rybicki's avatar Dariusz Rybicki
Browse files

Update ContactFeature

parent 94b81c4c
No related branches found
No related tags found
2 merge requests!102Release 1.0.0,!68Messenger example - send auth request
This commit is part of merge request !68. Comments created here will be created in the context of that merge request.
import AppCore
import ContactFeature
import Foundation
import HomeFeature
import RegisterFeature
......@@ -55,7 +56,12 @@ extension AppEnvironment {
UserSearchResultEnvironment()
},
contact: {
ContactEnvironment()
ContactEnvironment(
messenger: messenger,
db: dbManager.getDB,
mainQueue: mainQueue,
bgQueue: bgQueue
)
}
)
}
......
import AppCore
import ComposableArchitecture
import Foundation
import XCTestDynamicOverlay
import XXClient
import XXMessengerClient
import XXModels
public struct ContactState: Equatable {
public init() {}
public init(
id: Data,
dbContact: XXModels.Contact? = nil,
xxContact: XXClient.Contact? = nil
) {
self.id = id
self.dbContact = dbContact
self.xxContact = xxContact
}
public var id: Data
public var dbContact: XXModels.Contact?
public var xxContact: XXClient.Contact?
}
public enum ContactAction: Equatable {
......@@ -10,12 +27,32 @@ public enum ContactAction: Equatable {
}
public struct ContactEnvironment {
public init() {}
public init(
messenger: Messenger,
db: DBManagerGetDB,
mainQueue: AnySchedulerOf<DispatchQueue>,
bgQueue: AnySchedulerOf<DispatchQueue>
) {
self.messenger = messenger
self.db = db
self.mainQueue = mainQueue
self.bgQueue = bgQueue
}
public var messenger: Messenger
public var db: DBManagerGetDB
public var mainQueue: AnySchedulerOf<DispatchQueue>
public var bgQueue: AnySchedulerOf<DispatchQueue>
}
#if DEBUG
extension ContactEnvironment {
public static let unimplemented = ContactEnvironment()
public static let unimplemented = ContactEnvironment(
messenger: .unimplemented,
db: .unimplemented,
mainQueue: .unimplemented,
bgQueue: .unimplemented
)
}
#endif
......
......@@ -26,7 +26,9 @@ public struct ContactView: View {
public struct ContactView_Previews: PreviewProvider {
public static var previews: some View {
ContactView(store: Store(
initialState: ContactState(),
initialState: ContactState(
id: "contact-id".data(using: .utf8)!
),
reducer: .empty,
environment: ()
))
......
......@@ -120,7 +120,10 @@ public let userSearchReducer = Reducer<UserSearchState, UserSearchAction, UserSe
return .none
case .result(let id, action: .tapped):
state.contact = ContactState()
state.contact = ContactState(
id: id,
xxContact: state.results[id: id]?.xxContact
)
return .none
case .binding(_), .result(_, _), .contact(_):
......
......@@ -5,7 +5,9 @@ import XCTest
final class ContactFeatureTests: XCTestCase {
func testStart() {
let store = TestStore(
initialState: ContactState(),
initialState: ContactState(
id: "contact-id".data(using: .utf8)!
),
reducer: contactReducer,
environment: .unimplemented
)
......
......@@ -104,14 +104,19 @@ final class UserSearchFeatureTests: XCTestCase {
)
store.send(.result(id: "contact-id".data(using: .utf8)!, action: .tapped)) {
$0.contact = ContactState()
$0.contact = ContactState(
id: "contact-id".data(using: .utf8)!,
xxContact: .unimplemented("contact-data".data(using: .utf8)!)
)
}
}
func testDismissingContact() {
let store = TestStore(
initialState: UserSearchState(
contact: ContactState()
contact: ContactState(
id: "contact-id".data(using: .utf8)!
)
),
reducer: userSearchReducer,
environment: .unimplemented
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment