diff --git a/scalarx/jvm/src/test/scala/rx/EventedTests.scala b/scalarx/jvm/src/test/scala/rx/EventedTests.scala index 38183276..8955eaa4 100644 --- a/scalarx/jvm/src/test/scala/rx/EventedTests.scala +++ b/scalarx/jvm/src/test/scala/rx/EventedTests.scala @@ -13,149 +13,147 @@ object EventedTests extends TestSuite { def tests = utest.Tests { -// "debounce" - { -// "simple" - { -// val a = Var(10) -// val b = a.debounce(1000.millis) -// a() = 5 -// assert(b.now == 10) -// -// eventually { -// b.now == 5 -// } -// val curr = b.now -// a() = 2 -// assert(b.now == curr) -// -// eventually { -// b.now == 2 -// } -// -// a() = 1 -// a() = 5 -// a() = 42 -// -// assert(b.now == 2) -// -// eventually { -// b.now == 42 -// } -// } -// "longer" - { -// val a = Var(10) -// val b = a.debounce(1000.millis) -// val c = Rx( a() * 2 ).debounce(1000.millis) -// var count = 0 -// val o = b.triggerLater { count += 1 } -// a() = 5 -// eventually( -// b.now == 5, -// c.now == 10 -// ) -// a() = 2 -// assert( -// b.now == 5, -// c.now == 10 -// ) -// -// a() = 7 -// assert( -// b.now == 5, -// c.now == 10 -// ) -// -// eventually( -// b.now == 7, -// c.now == 14 -// ) -// -// a() = 1 -// assert( -// b.now == 7, -// c.now == 14 -// ) -// -// eventually( -// b.now == 1, -// c.now == 2 -// ) -// -// a() = 3 -// a() = 4 -// a() = 42 -// -// eventually( -// b.now == 42, -// c.now == 84 -// ) -// -// assert(count == 4) -// } -// } -// "delayed" - { -// "simple" - { -// val a = Var(10) -// val b = a.delay(1000.millis) -// a() = 5 -// assert(b.now == 10) -// eventually( -// b.now == 5 -// ) -// a() = 4 -// a() = 5 -// a() = 6 -// assert(b.now == 4) -// eventually( -// b.now == 5 -// ) -// eventually( -// b.now == 6 -// ) -// } -// "longer" - { -// val a = Var(10) -// val b = a.delay(1000 millis) -// val c = Rx( a() * 2 ).delay(1000 millis) -// var count = 0 -// c.trigger(count += 1) -// a() = 5 -// assert( -// b.now == 10, -// c.now == 20 -// ) -// eventually( -// b.now == 5, -// c.now == 10 -// ) -// -// a() = 4 -// assert( -// b.now == 4, -// c.now == 8 -// ) -// a() = 7 -// assert( -// b.now == 4, -// c.now == 8 -// ) -// eventually( -// b.now == 7, -// c.now == 14 -// ) -// -// assert(count == 4) -// } -// } -// "timer" - { -// var count = 0 -// val timer = Timer(100.milli) -// timer.foreach(i => count += 1) -// eventually(count == 2) -// eventually(count == 4) -// timer.kill() -// intercept[AssertionError] { -// eventually(count == 6) -// } -// } + "debounce" - { + "simple" - { + val a = Var(10) + val b = a.debounce(125.millis) + a() = 5 + + eventually { + b.now == 5 + } + val curr = b.now + a() = 2 + + eventually { + b.now == 2 + } + + a() = 1 + a() = 5 + a() = 42 + + eventually { + b.now == 42 + } + } + "longer" - { + val a = Var(10) + val b = a.debounce(100.millis) + val c = Rx(a() * 2).debounce(100.millis) + var count = 0 + val o = b.triggerLater { + count += 1 + } + a() = 5 + eventually( + b.now == 5, + c.now == 10 + ) + a() = 2 + assert( + b.now == 5, + c.now == 10 + ) + + a() = 7 + assert( + b.now == 5, + c.now == 10 + ) + + eventually( + b.now == 7, + c.now == 14 + ) + + a() = 1 + assert( + b.now == 7, + c.now == 14 + ) + + eventually( + b.now == 1, + c.now == 2 + ) + + a() = 3 + a() = 4 + a() = 42 + + eventually( + b.now == 42, + c.now == 84 + ) + + assert(count == 4) + } + } + "delayed" - { + "simple" - { + val a = Var(10) + val b = a.delay(100.millis) + a() = 5 + assert(b.now == 10) + eventually( + b.now == 5 + ) + a() = 4 + a() = 5 + a() = 6 + assert(b.now == 4) + eventually( + b.now == 5 || b.now == 6 + ) + eventually( + b.now == 6 + ) + } + "longer" - { + val a = Var(10) + val b = a.delay(100.millis) + val c = Rx( a() * 2 ).delay(100.millis) + var count = 0 + c.trigger(count += 1) + a() = 5 + assert( + b.now == 10, + c.now == 20 + ) + eventually( + b.now == 5, + c.now == 10 + ) + + a() = 4 + assert( + b.now == 4, + c.now == 8 + ) + a() = 7 + assert( + b.now == 4, + c.now == 8 + ) + eventually( + b.now == 7, + c.now == 14 + ) + + assert(count == 4) + } + } + "timer" - { + var count = 0 + val timer = Timer(100.millis) + timer.foreach(i => count += 1) + eventually(count == 2) + eventually(count == 4) + timer.kill() + intercept[AssertionError] { + eventually(count == 6) + } + } } }