From 10594430b5f8927a760269d8ff0ec0cdbe6dafa0 Mon Sep 17 00:00:00 2001 From: Nikita Gazarov Date: Tue, 12 Mar 2024 23:53:23 -0700 Subject: [PATCH] Test: EitherStream.collectRight --- .../extensions/EitherObservableSpec.scala | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) diff --git a/src/test/scala/com/raquo/airstream/extensions/EitherObservableSpec.scala b/src/test/scala/com/raquo/airstream/extensions/EitherObservableSpec.scala index f21e81ec..9b0b740d 100644 --- a/src/test/scala/com/raquo/airstream/extensions/EitherObservableSpec.scala +++ b/src/test/scala/com/raquo/airstream/extensions/EitherObservableSpec.scala @@ -251,4 +251,101 @@ class EitherObservableSpec extends UnitSpec { ) effects.clear() } + + it("EitherStream: collectRight") { + val owner: TestableOwner = new TestableOwner + + val bus = new EventBus[Either[Int, String]] + + val effects = mutable.Buffer[Effect[_]]() + + bus + .events + .collectRight + .foreach(v => effects += Effect("obs", v))(owner) + + effects shouldBe mutable.Buffer() + + // -- + + bus.emit(Left(1)) + + effects.toList shouldBe Nil + + // -- + + bus.emit(Right("a")) + + effects.toList shouldBe List( + Effect("obs", "a") + ) + effects.clear() + + // -- + + bus.emit(Right("b")) + + effects.toList shouldBe List( + Effect("obs", "b") + ) + effects.clear() + + // -- + + bus.emit(Left(2)) + + effects.toList shouldBe Nil + } + + it("EitherStream: collectRight()") { + val owner: TestableOwner = new TestableOwner + + val bus = new EventBus[Either[Int, String]] + + val effects = mutable.Buffer[Effect[_]]() + + bus + .events + .collectRight { case "a" => true } + .foreach(v => effects += Effect("obs", v))(owner) + + effects shouldBe mutable.Buffer() + + // -- + + bus.emit(Left(1)) + + effects.toList shouldBe Nil + + // -- + + bus.emit(Right("a")) + + effects.toList shouldBe List( + Effect("obs", true) + ) + effects.clear() + + // -- + + bus.emit(Right("b")) + + effects.toList shouldBe Nil + effects.clear() + + // -- + + bus.emit(Right("a")) + + effects.toList shouldBe List( + Effect("obs", true) + ) + effects.clear() + + // -- + + bus.emit(Left(2)) + + effects.toList shouldBe Nil + } }