Skip to content

Commit 98ff2ad

Browse files
Martin Troupfreak4pc
authored andcommitted
Fix for ShareReplay operator.
(cherry picked from commit 8a1460c)
1 parent 5ca8ad7 commit 98ff2ad

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

.DS_Store

6 KB
Binary file not shown.

Tests/ShareReplayTests.swift

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,5 +241,36 @@ final class ShareReplayTests: XCTestCase {
241241
XCTAssertEqual(completions, [.finished])
242242
XCTAssertNil(weakSource)
243243
}
244+
245+
func testSequentialUpstreamWithShareReplay() {
246+
let publisher = Just(1)
247+
.eraseToAnyPublisher()
248+
.share(replay: 1)
249+
250+
var valueReceived = false
251+
var finishedReceived = false
252+
253+
Publishers.Zip(publisher, publisher)
254+
.sink(
255+
receiveCompletion: { completion in
256+
switch completion {
257+
case .finished:
258+
finishedReceived = true
259+
case let .failure(error):
260+
XCTFail("Unexpected completion - failure: \(error).")
261+
}
262+
},
263+
receiveValue: { leftValue, rightValue in
264+
XCTAssertEqual(leftValue, 1)
265+
XCTAssertEqual(rightValue, 1)
266+
267+
valueReceived = true
268+
}
269+
)
270+
.store(in: &subscriptions)
271+
272+
XCTAssertTrue(valueReceived)
273+
XCTAssertTrue(finishedReceived)
274+
}
244275
}
245276
#endif

0 commit comments

Comments
 (0)