Skip to content

Commit e12f200

Browse files
authored
Clean up skipInFlightEffects and write test on beahvior. (#2057)
1 parent ce187a4 commit e12f200

File tree

2 files changed

+27
-4
lines changed

2 files changed

+27
-4
lines changed

Sources/ComposableArchitecture/TestStore.swift

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2114,10 +2114,6 @@ extension TestStore {
21142114
file: file,
21152115
line: line
21162116
)
2117-
2118-
for effect in self.reducer.inFlightEffects {
2119-
_ = EffectPublisher<Never, Never>.cancel(id: effect.id).sink { _ in }
2120-
}
21212117
self.reducer.inFlightEffects = []
21222118
}
21232119

Tests/ComposableArchitectureTests/TestStoreTests.swift

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -404,6 +404,33 @@ final class TestStoreTests: BaseTCATestCase {
404404
$0.date = now
405405
}
406406
}
407+
408+
func testEffectEmitAfterSkipInFlightEffects() async {
409+
let mainQueue = DispatchQueue.test
410+
enum Action: Equatable { case tap, response }
411+
let store = TestStore(
412+
initialState: 0,
413+
reducer: Reduce<Int, Action> { state, action in
414+
switch action {
415+
case .tap:
416+
return .run { send in
417+
try await mainQueue.sleep(for: .seconds(1))
418+
await send(.response)
419+
}
420+
case .response:
421+
state = 42
422+
return .none
423+
}
424+
}
425+
)
426+
427+
await store.send(.tap)
428+
await store.skipInFlightEffects()
429+
await mainQueue.advance(by: .seconds(1))
430+
await store.receive(.response) {
431+
$0 = 42
432+
}
433+
}
407434
}
408435

409436
private struct Client: DependencyKey {

0 commit comments

Comments
 (0)