mirror of
https://github.com/pointfreeco/swift-composable-architecture.git
synced 2025-12-20 09:11:33 +01:00
63 lines
1.4 KiB
Swift
63 lines
1.4 KiB
Swift
import Combine
|
|
import ComposableArchitecture
|
|
import XCTest
|
|
|
|
@testable import SwiftUICaseStudies
|
|
|
|
class AnimationTests: XCTestCase {
|
|
let scheduler = DispatchQueue.test
|
|
|
|
func testRainbow() {
|
|
let store = TestStore(
|
|
initialState: AnimationsState(),
|
|
reducer: animationsReducer,
|
|
environment: AnimationsEnvironment(
|
|
mainQueue: self.scheduler.eraseToAnyScheduler()
|
|
)
|
|
)
|
|
|
|
store.send(.rainbowButtonTapped)
|
|
|
|
store.receive(.setColor(.red)) {
|
|
$0.circleColor = .red
|
|
}
|
|
|
|
self.scheduler.advance(by: .seconds(1))
|
|
store.receive(.setColor(.blue)) {
|
|
$0.circleColor = .blue
|
|
}
|
|
|
|
self.scheduler.advance(by: .seconds(1))
|
|
store.receive(.setColor(.green)) {
|
|
$0.circleColor = .green
|
|
}
|
|
|
|
self.scheduler.advance(by: .seconds(1))
|
|
store.receive(.setColor(.orange)) {
|
|
$0.circleColor = .orange
|
|
}
|
|
|
|
self.scheduler.advance(by: .seconds(1))
|
|
store.receive(.setColor(.pink)) {
|
|
$0.circleColor = .pink
|
|
}
|
|
|
|
self.scheduler.advance(by: .seconds(1))
|
|
store.receive(.setColor(.purple)) {
|
|
$0.circleColor = .purple
|
|
}
|
|
|
|
self.scheduler.advance(by: .seconds(1))
|
|
store.receive(.setColor(.yellow)) {
|
|
$0.circleColor = .yellow
|
|
}
|
|
|
|
self.scheduler.advance(by: .seconds(1))
|
|
store.receive(.setColor(.white)) {
|
|
$0.circleColor = .white
|
|
}
|
|
|
|
self.scheduler.run()
|
|
}
|
|
}
|