Skip to content

Commit a068f52

Browse files
committed
Replace testEffectDisposablesDeinitialization test
with tests from main repo that test the same thing.
1 parent 0f01ec1 commit a068f52

File tree

1 file changed

+27
-21
lines changed

1 file changed

+27
-21
lines changed

Tests/ComposableArchitectureTests/StoreTests.swift

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -36,35 +36,41 @@ final class StoreTests: XCTestCase {
3636
XCTAssertEqual(values, [0, 1, 2, 3])
3737
}
3838

39-
func testEffectDisposablesDeinitialization() {
40-
enum Action {
41-
case triggerDelay
42-
case delayDidComplete
43-
}
44-
let delayedReducer = Reducer<Void, Action, DateScheduler> { _, action, mainQueue in
45-
switch action {
46-
case .triggerDelay:
47-
return Effect(value: .delayDidComplete).delay(1, on: mainQueue)
39+
func testCancellableIsRemovedOnImmediatelyCompletingEffect() {
40+
let reducer = Reducer<Void, Void, Void> { _, _, _ in .none }
41+
let store = Store(initialState: (), reducer: reducer, environment: ())
42+
43+
XCTAssertEqual(store.effectDisposables.count, 0)
44+
45+
store.send(())
46+
47+
XCTAssertEqual(store.effectDisposables.count, 0)
48+
}
49+
50+
func testCancellableIsRemovedWhenEffectCompletes() {
51+
let scheduler = TestScheduler()
52+
let effect = Effect<Void, Never>(value: ())
53+
.delay(1, on: scheduler)
4854

49-
case .delayDidComplete:
55+
enum Action { case start, end }
56+
57+
let reducer = Reducer<Void, Action, Void> { _, action, _ in
58+
switch action {
59+
case .start:
60+
return effect.map { .end }
61+
case .end:
5062
return .none
5163
}
5264
}
65+
let store = Store(initialState: (), reducer: reducer, environment: ())
5366

54-
let store = Store(
55-
initialState: (),
56-
reducer: delayedReducer,
57-
environment: QueueScheduler.main
58-
)
67+
XCTAssertEqual(store.effectDisposables.count, 0)
5968

60-
store.send(.triggerDelay)
61-
store.send(.triggerDelay)
62-
store.send(.triggerDelay)
63-
store.send(.delayDidComplete)
69+
store.send(.start)
6470

65-
XCTAssertEqual(store.effectDisposables.count, 3)
71+
XCTAssertEqual(store.effectDisposables.count, 1)
6672

67-
XCTWaiter().wait(for: [XCTestExpectation()], timeout: 1.1)
73+
scheduler.advance(by: 2)
6874

6975
XCTAssertEqual(store.effectDisposables.count, 0)
7076
}

0 commit comments

Comments
 (0)