Skip to content

Commit 83fcff2

Browse files
committed
Add tests for mergePreferred
1 parent b1b9aab commit 83fcff2

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

core/shared/src/test/scala/fs2/StreamMergeSuite.scala

Lines changed: 33 additions & 0 deletions
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)