Newer
Older
import ComposableArchitecture
import CustomDump
final class ResetAuthComponentTests: XCTestCase {
func testReset() {
let partnerData = "contact-data".data(using: .utf8)!
let partner = Contact.unimplemented(partnerData)
var didResetAuthChannel: [Contact] = []
let store = TestStore(
initialState: ResetAuthComponent.State(
reducer: ResetAuthComponent()
store.dependencies.app.mainQueue = .immediate
store.dependencies.app.bgQueue = .immediate
store.dependencies.app.messenger.e2e.get = {
var e2e: E2E = .unimplemented
e2e.resetAuthenticatedChannel.run = { contact in
didResetAuthChannel.append(contact)
return 0
}
return e2e
}
store.send(.resetTapped) {
$0.isResetting = true
}
XCTAssertNoDifference(didResetAuthChannel, [partner])
store.receive(.didReset) {
$0.isResetting = false
$0.didReset = true
}
}
func testResetFailure() {
struct Failure: Error {}
let failure = Failure()
let store = TestStore(
initialState: ResetAuthComponent.State(
partner: .unimplemented(Data())
),
reducer: ResetAuthComponent()
store.dependencies.app.mainQueue = .immediate
store.dependencies.app.bgQueue = .immediate
store.dependencies.app.messenger.e2e.get = {
var e2e: E2E = .unimplemented
e2e.resetAuthenticatedChannel.run = { _ in throw failure }
return e2e
}
store.send(.resetTapped) {
$0.isResetting = true
}
store.receive(.didFail(failure.localizedDescription)) {
$0.isResetting = false
$0.failure = failure.localizedDescription
}