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

Use MessengerMyContact in SendRequestFeature

parent 20e23f55
No related branches found
No related tags found
2 merge requests!112Restore contacts from backup,!102Release 1.0.0
...@@ -81,9 +81,7 @@ public let sendRequestReducer = Reducer<SendRequestState, SendRequestAction, Sen ...@@ -81,9 +81,7 @@ public let sendRequestReducer = Reducer<SendRequestState, SendRequestAction, Sen
case .start: case .start:
return Effect.run { subscriber in return Effect.run { subscriber in
do { do {
var contact = try env.messenger.e2e.tryGet().getContact() let contact = try env.messenger.myContact()
let facts = try env.messenger.ud.tryGet().getFacts()
try contact.setFacts(facts)
subscriber.send(.myContactFetched(contact)) subscriber.send(.myContactFetched(contact))
} catch { } catch {
subscriber.send(.myContactFetchFailed(error as NSError)) subscriber.send(.myContactFetchFailed(error as NSError))
......
...@@ -3,27 +3,16 @@ import ComposableArchitecture ...@@ -3,27 +3,16 @@ import ComposableArchitecture
import CustomDump import CustomDump
import XCTest import XCTest
import XXClient import XXClient
import XXMessengerClient
import XXModels import XXModels
@testable import SendRequestFeature @testable import SendRequestFeature
final class SendRequestFeatureTests: XCTestCase { final class SendRequestFeatureTests: XCTestCase {
func testStart() { func testStart() {
var didSetFactsOnE2EContact: [[Fact]] = [] let myContact = XXClient.Contact.unimplemented("my-contact-data".data(using: .utf8)!)
let e2eContactData = "e2e-contact-data".data(using: .utf8)!
let e2eContactDataWithFacts = "e2e-contact-data-with-facts".data(using: .utf8)! var didGetMyContact: [MessengerMyContact.IncludeFacts?] = []
let e2eContact: XXClient.Contact = {
var contact = XXClient.Contact.unimplemented(e2eContactData)
contact.setFactsOnContact.run = { data, facts in
didSetFactsOnE2EContact.append(facts)
return e2eContactDataWithFacts
}
return contact
}()
let udFacts = [
Fact(type: .username, value: "ud-username"),
Fact(type: .email, value: "ud-email"),
Fact(type: .phone, value: "ud-phone"),
]
let store = TestStore( let store = TestStore(
initialState: SendRequestState( initialState: SendRequestState(
contact: .unimplemented("contact-data".data(using: .utf8)!) contact: .unimplemented("contact-data".data(using: .utf8)!)
...@@ -33,21 +22,15 @@ final class SendRequestFeatureTests: XCTestCase { ...@@ -33,21 +22,15 @@ final class SendRequestFeatureTests: XCTestCase {
) )
store.environment.mainQueue = .immediate store.environment.mainQueue = .immediate
store.environment.bgQueue = .immediate store.environment.bgQueue = .immediate
store.environment.messenger.e2e.get = { store.environment.messenger.myContact.run = { includeFacts in
var e2e: E2E = .unimplemented didGetMyContact.append(includeFacts)
e2e.getContact.run = { e2eContact } return myContact
return e2e
}
store.environment.messenger.ud.get = {
var ud: UserDiscovery = .unimplemented
ud.getFacts.run = { udFacts }
return ud
} }
store.send(.start) store.send(.start)
store.receive(.myContactFetched(.unimplemented(e2eContactDataWithFacts))) { store.receive(.myContactFetched(myContact)) {
$0.myContact = .unimplemented(e2eContactDataWithFacts) $0.myContact = myContact
} }
} }
...@@ -64,16 +47,7 @@ final class SendRequestFeatureTests: XCTestCase { ...@@ -64,16 +47,7 @@ final class SendRequestFeatureTests: XCTestCase {
) )
store.environment.mainQueue = .immediate store.environment.mainQueue = .immediate
store.environment.bgQueue = .immediate store.environment.bgQueue = .immediate
store.environment.messenger.e2e.get = { store.environment.messenger.myContact.run = { _ in throw failure }
var e2e: E2E = .unimplemented
e2e.getContact.run = { .unimplemented(Data()) }
return e2e
}
store.environment.messenger.ud.get = {
var ud: UserDiscovery = .unimplemented
ud.getFacts.run = { throw failure }
return ud
}
store.send(.start) store.send(.start)
......
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