Files
swift-composable-architectu…/Examples/CaseStudies/SwiftUICaseStudiesTests/02-Effects-BasicsTests.swift
Brandon Williams 50dc37e8d2 Fix websocket case study and FactClient. (#639)
* 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>
2021-07-08 10:13:31 -04:00

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"
}
}
}