Skip to content

Commit 3c3fbc8

Browse files
authored
Add test for publisher with many synchronous effects. (#517)
1 parent 468ffaa commit 3c3fbc8

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

Tests/ComposableArchitectureTests/StoreTests.swift

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -404,4 +404,36 @@ final class StoreTests: XCTestCase {
404404
}
405405
subject.send(completion: .finished)
406406
}
407+
408+
func testCoalesceSynchronousActions() {
409+
let store = Store(
410+
initialState: 0,
411+
reducer: Reducer<Int, Int, Void> { state, action, _ in
412+
switch action {
413+
case 0:
414+
return .merge(
415+
Effect(value: 1),
416+
Effect(value: 2),
417+
Effect(value: 3)
418+
)
419+
default:
420+
state = action
421+
return .none
422+
}
423+
},
424+
environment: ()
425+
)
426+
427+
var emissions: [Int] = []
428+
let viewStore = ViewStore(store)
429+
viewStore.publisher
430+
.sink { emissions.append($0) }
431+
.store(in: &self.cancellables)
432+
433+
XCTAssertEqual(emissions, [0])
434+
435+
viewStore.send(0)
436+
437+
XCTAssertEqual(emissions, [0, 1, 2, 3])
438+
}
407439
}

0 commit comments

Comments
 (0)