Conversation
There was a problem hiding this comment.
Hey Ethan! Thanks a ton for taking a stab at this. It looks really good. I left a handful of comments for tidying things up. Can't wait to get this merged!
Edit: I'm also curious if there's opportunity here to reshape the expectation API by utilizing Combine Publisher's value parameter, which returns an async sequence of elements from the publisher. The reason I didn't do this originally is because I didn't have a timeout mechanism. Now that we do, assuming that ["cool"].publisher.value supports cooperative cancellation, we may be able to reshape the expectation code.
Regardless, I think we can explore that later as part of a new major version. You're on the right track here with this PR.
albertbori
left a comment
There was a problem hiding this comment.
Looks great! Fantastic work!
This PR introduces a Swift Testing-based solution for
TestableCombinePublishers.SwiftTestingTestableCombinePublisherstarget which mimics the existingTestableCombinePublisherstarget, but with no usage of the XCTest library.TestableCombinePublishersUtilitytarget which houses shared logic between the XCTest and Swift Testing implementations - i.e.AutomaticallyEquatableThe only different between the XCTest and Swift Testing implementation is that the Swift Testing implementation utilizes
async/await:TestableCombinePublishers
SwiftTestingTestableCombinePublishers