Browse Source

Test Observable.wrap;

bjorn 10 years ago
parent
commit
84a87ffba7
2 changed files with 28 additions and 0 deletions
  1. 1 0
      tests/observable.lua
  2. 27 0
      tests/wrap.lua

+ 1 - 0
tests/observable.lua

@@ -176,4 +176,5 @@ describe('Observable', function()
   dofile('tests/takeWhile.lua')
   dofile('tests/unpack.lua')
   dofile('tests/unwrap.lua')
+  dofile('tests/wrap.lua')
 end)

+ 27 - 0
tests/wrap.lua

@@ -0,0 +1,27 @@
+describe('wrap', function()
+  it('produces an error if its parent errors', function()
+    local observable = Rx.Observable.fromValue(''):map(function(x) return x() end)
+    expect(observable.subscribe).to.fail()
+    expect(observable:wrap().subscribe).to.fail()
+  end)
+
+  it('fails if size is not specified', function()
+    expect(Rx.Observable.fromRange(5):wrap().subscribe).to.fail()
+  end)
+
+  it('produces values wrapped to the specified width', function()
+    local observable = Rx.Observable.create(function(observer)
+      observer:onNext(1)
+      observer:onNext(2, 3)
+      observer:onNext(4, 5, 6)
+      observer:onComplete()
+    end)
+    expect(observable).to.produce({{1}, {2, 3}, {4, 5, 6}})
+    expect(observable:wrap(2)).to.produce({{1, 2}, {3, 4}, {5, 6}})
+  end)
+
+  it('produces a partial buffer if the observable completes', function()
+    local observable = Rx.Observable.fromRange(5)
+    expect(observable:wrap(2)).to.produce({{1, 2}, {3, 4}, {5}})
+  end)
+end)