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

Improve failure handling in ContactLookupFeature

parent 7c1394e8
No related branches found
No related tags found
2 merge requests!112Restore contacts from backup,!102Release 1.0.0
...@@ -57,6 +57,7 @@ public let contactLookupReducer = Reducer<ContactLookupState, ContactLookupActio ...@@ -57,6 +57,7 @@ public let contactLookupReducer = Reducer<ContactLookupState, ContactLookupActio
switch action { switch action {
case .lookupTapped: case .lookupTapped:
state.isLookingUp = true state.isLookingUp = true
state.failure = nil
return Effect.result { [state] in return Effect.result { [state] in
do { do {
let contact = try env.messenger.lookupContact(id: state.id) let contact = try env.messenger.lookupContact(id: state.id)
...@@ -71,11 +72,12 @@ public let contactLookupReducer = Reducer<ContactLookupState, ContactLookupActio ...@@ -71,11 +72,12 @@ public let contactLookupReducer = Reducer<ContactLookupState, ContactLookupActio
case .didLookup(_): case .didLookup(_):
state.isLookingUp = false state.isLookingUp = false
state.failure = nil
return .none return .none
case .didFail(let error): case .didFail(let error):
state.failure = error.localizedDescription
state.isLookingUp = false state.isLookingUp = false
state.failure = error.localizedDescription
return .none return .none
} }
} }
...@@ -23,12 +23,14 @@ final class ContactLookupFeatureTests: XCTestCase { ...@@ -23,12 +23,14 @@ final class ContactLookupFeatureTests: XCTestCase {
store.send(.lookupTapped) { store.send(.lookupTapped) {
$0.isLookingUp = true $0.isLookingUp = true
$0.failure = nil
} }
XCTAssertEqual(didLookupId, [id]) XCTAssertEqual(didLookupId, [id])
store.receive(.didLookup(lookedUpContact)) { store.receive(.didLookup(lookedUpContact)) {
$0.isLookingUp = false $0.isLookingUp = false
$0.failure = nil
} }
} }
...@@ -47,11 +49,12 @@ final class ContactLookupFeatureTests: XCTestCase { ...@@ -47,11 +49,12 @@ final class ContactLookupFeatureTests: XCTestCase {
store.send(.lookupTapped) { store.send(.lookupTapped) {
$0.isLookingUp = true $0.isLookingUp = true
$0.failure = nil
} }
store.receive(.didFail(failure)) { store.receive(.didFail(failure)) {
$0.failure = failure.localizedDescription
$0.isLookingUp = false $0.isLookingUp = false
$0.failure = failure.localizedDescription
} }
} }
} }
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