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
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