mirror of
https://github.com/pointfreeco/swift-composable-architecture.git
synced 2025-12-20 09:11:33 +01:00
* Fix websocket case study and FactClient. * Rename unimplemented to failing. * Update Examples/CaseStudies/SwiftUICaseStudies/FactClient.swift Co-authored-by: Stephen Celis <stephen@stephencelis.com> Co-authored-by: Stephen Celis <stephen@stephencelis.com>
50 lines
1.2 KiB
Swift
50 lines
1.2 KiB
Swift
import ComposableArchitecture
|
|
import XCTest
|
|
|
|
@testable import SwiftUICaseStudies
|
|
|
|
class EffectsBasicsTests: XCTestCase {
|
|
func testCountDown() {
|
|
let store = TestStore(
|
|
initialState: EffectsBasicsState(),
|
|
reducer: effectsBasicsReducer,
|
|
environment: EffectsBasicsEnvironment(
|
|
fact: .failing,
|
|
mainQueue: .immediate
|
|
)
|
|
)
|
|
|
|
store.send(.incrementButtonTapped) {
|
|
$0.count = 1
|
|
}
|
|
store.send(.decrementButtonTapped) {
|
|
$0.count = 0
|
|
}
|
|
store.receive(.incrementButtonTapped) {
|
|
$0.count = 1
|
|
}
|
|
}
|
|
|
|
func testNumberFact() {
|
|
let store = TestStore(
|
|
initialState: EffectsBasicsState(),
|
|
reducer: effectsBasicsReducer,
|
|
environment: EffectsBasicsEnvironment(
|
|
fact: .init(fetch: { n in Effect(value: "\(n) is a good number Brent") }),
|
|
mainQueue: .immediate
|
|
)
|
|
)
|
|
|
|
store.send(.incrementButtonTapped) {
|
|
$0.count = 1
|
|
}
|
|
store.send(.numberFactButtonTapped) {
|
|
$0.isNumberFactRequestInFlight = true
|
|
}
|
|
store.receive(.numberFactResponse(.success("1 is a good number Brent"))) {
|
|
$0.isNumberFactRequestInFlight = false
|
|
$0.numberFact = "1 is a good number Brent"
|
|
}
|
|
}
|
|
}
|