Skip to content

Commit 1bdefd4

Browse files
committed
Add tests for mergePreferred
1 parent ad9e8c7 commit 1bdefd4

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

Diff for: core/shared/src/test/scala/fs2/StreamMergeSuite.scala

+33
Original file line numberDiff line numberDiff line change
@@ -242,4 +242,37 @@ class StreamMergeSuite extends Fs2Suite {
242242
}
243243
}
244244
}
245+
246+
test("mergePreferred prefers") {
247+
forAllF { (leftStream: Stream[Pure, Int], rightStream: Stream[Pure, Int]) =>
248+
val leftTagged = leftStream.covary[IO]
249+
val rightTagged = rightStream.covary[IO].delayBy(10.milli)
250+
leftTagged
251+
.mergePreferred(rightTagged)
252+
.assertEmitsSameAs(leftStream ++ rightStream)
253+
}
254+
}
255+
256+
test("mergePreferred fully consumes this") {
257+
forAllF { stream: Stream[Pure, Int] =>
258+
stream.covary[IO].mergePreferred(Stream.empty.covary[IO]).assertEmitsSameAs(stream)
259+
}
260+
}
261+
262+
test("mergePreferred fully consumes that") {
263+
forAllF { stream: Stream[Pure, Int] =>
264+
Stream.empty.covary[IO].mergePreferred(stream.covary[IO]).assertEmitsSameAs(stream)
265+
}
266+
}
267+
268+
test("mergePreferred fully consumes both") {
269+
forAllF { (leftStream: Stream[Pure, Int], rightStream: Stream[Pure, Int]) =>
270+
val leftTagged = leftStream.covary[IO]
271+
val rightTagged = rightStream.covary[IO]
272+
leftTagged
273+
.mergePreferred(rightTagged)
274+
.assertEmitsUnorderedSameAs(leftStream ++ rightStream)
275+
}
276+
}
277+
245278
}

0 commit comments

Comments
 (0)