diff --git a/Examples/CaseStudies/SwiftUICaseStudies/03-Effects-Timers.swift b/Examples/CaseStudies/SwiftUICaseStudies/03-Effects-Timers.swift index 7b143f608de8..40287d3f4935 100644 --- a/Examples/CaseStudies/SwiftUICaseStudies/03-Effects-Timers.swift +++ b/Examples/CaseStudies/SwiftUICaseStudies/03-Effects-Timers.swift @@ -30,6 +30,7 @@ struct Timers { Reduce { state, action in switch action { case .onDisappear: + state.isTimerActive = false return .cancel(id: CancelID.timer) case .timerTicked: diff --git a/Examples/CaseStudies/SwiftUICaseStudiesTests/03-Effects-TimersTests.swift b/Examples/CaseStudies/SwiftUICaseStudiesTests/03-Effects-TimersTests.swift index eac2593e5f00..1f26298fc7d0 100644 --- a/Examples/CaseStudies/SwiftUICaseStudiesTests/03-Effects-TimersTests.swift +++ b/Examples/CaseStudies/SwiftUICaseStudiesTests/03-Effects-TimersTests.swift @@ -41,5 +41,15 @@ struct TimersTests { await store.send(.toggleTimerButtonTapped) { $0.isTimerActive = false } + await store.send(.toggleTimerButtonTapped) { + $0.isTimerActive = true + } + await clock.advance(by: .seconds(1)) + await store.receive(\.timerTicked) { + $0.secondsElapsed = 7 + } + await store.send(.onDisappear) { + $0.isTimerActive = false + } } }