@@ -76,7 +76,6 @@ final class AsyncMergeSequenceTests: XCTestCase {
7676
7777 let expectedElements = asyncSequence1 + asyncSequence2 + asyncSequence3 + asyncSequence4
7878
79-
8079 let sut = merge ( asyncSequence1. async , asyncSequence2. async , asyncSequence3. async , asyncSequence4. async )
8180
8281 var receivedElements = [ Int] ( )
@@ -247,7 +246,7 @@ final class AsyncMergeSequenceTests: XCTestCase {
247246 for try await element in sut {
248247 firstElement = element
249248 canCancelExpectation. fulfill ( )
250- wait ( for : [ hasCancelExceptation] , timeout: 5 )
249+ await fulfillment ( of : [ hasCancelExceptation] , timeout: 5 )
251250 }
252251 XCTAssertEqual ( firstElement, 10 )
253252 taskHasFinishedExpectation. fulfill ( )
@@ -289,4 +288,22 @@ final class AsyncMergeSequenceTests: XCTestCase {
289288
290289 wait ( for: [ hasCancelExceptation] , timeout: 1 )
291290 }
291+
292+ func testMerge_finishes_when_empty_array_of_base( ) {
293+ let sut = AsyncMergeSequence < AsyncStream < Int > > ( [ ] )
294+ let hasFinishedExpectation = expectation ( description: " Merge has finished " )
295+
296+ let task = Task {
297+ var received = [ Int] ( )
298+ for try await element in sut {
299+ received. append ( element)
300+ }
301+ XCTAssertTrue ( received. isEmpty)
302+ hasFinishedExpectation. fulfill ( )
303+ }
304+
305+ wait ( for: [ hasFinishedExpectation] , timeout: 1 )
306+
307+ task. cancel ( )
308+ }
292309}
0 commit comments