Newer
Older
import ComposableArchitecture
import XCTest
@testable import ContactLookupFeature
final class ContactLookupComponentTests: XCTestCase {
func testLookup() {
let id: Data = "1234".data(using: .utf8)!
var didLookupId: [Data] = []
let lookedUpContact = Contact.unimplemented("123data".data(using: .utf8)!)
initialState: ContactLookupComponent.State(id: id),
reducer: ContactLookupComponent()
store.dependencies.app.mainQueue = .immediate
store.dependencies.app.bgQueue = .immediate
store.dependencies.app.messenger.lookupContact.run = { id in
didLookupId.append(id)
return lookedUpContact
}
store.send(.lookupTapped) {
$0.isLookingUp = true
store.receive(.didLookup(lookedUpContact)) {
$0.isLookingUp = false
func testLookupFailure() {
let id: Data = "1234".data(using: .utf8)!
let failure = NSError(domain: "test", code: 0)
initialState: ContactLookupComponent.State(id: id),
reducer: ContactLookupComponent()
store.dependencies.app.mainQueue = .immediate
store.dependencies.app.bgQueue = .immediate
store.dependencies.app.messenger.lookupContact.run = { _ in throw failure }
store.send(.lookupTapped) {
$0.isLookingUp = true
store.receive(.didFail(failure)) {
$0.isLookingUp = false
$0.failure = failure.localizedDescription