Răsfoiți Sursa

Test Observable.merge;

bjorn 10 ani în urmă
părinte
comite
5b2df04284
2 a modificat fișierele cu 38 adăugiri și 0 ștergeri
  1. 37 0
      tests/merge.lua
  2. 1 0
      tests/observable.lua

+ 37 - 0
tests/merge.lua

@@ -0,0 +1,37 @@
+describe('merge', function()
+  it('produces values from the first observable if it is the only argument', function()
+    local observable = Rx.Observable.fromRange(5):merge()
+    expect(observable).to.produce(1, 2, 3, 4, 5)
+  end)
+
+  it('produces values from all input observables, in order', function()
+    local observableA = Rx.Subject.create()
+    local observableB = Rx.Subject.create()
+    local merged = observableA:merge(observableB)
+    local onNext, onError, onComplete = observableSpy(merged)
+    observableA:onNext('a')
+    observableB:onNext('b')
+    observableB:onNext('b')
+    observableA:onNext('a')
+    observableA:onComplete()
+    observableB:onComplete()
+    expect(onNext).to.equal({{'a'}, {'b'}, {'b'}, {'a'}})
+  end)
+
+  it('completes when all source observables complete', function()
+    local observableA = Rx.Subject.create()
+    local observableB = Rx.Subject.create()
+    local complete = spy()
+    Rx.Observable.merge(observableA, observableB):subscribe(nil, nil, complete)
+
+    expect(#complete).to.equal(0)
+    observableA:onNext(1)
+    expect(#complete).to.equal(0)
+    observableB:onNext(2)
+    expect(#complete).to.equal(0)
+    observableB:onComplete()
+    expect(#complete).to.equal(0)
+    observableA:onComplete()
+    expect(#complete).to.equal(1)
+  end)
+end)

+ 1 - 0
tests/observable.lua

@@ -163,4 +163,5 @@ describe('Observable', function()
   dofile('tests/map.lua')
   dofile('tests/max.lua')
   dofile('tests/min.lua')
+  dofile('tests/merge.lua')
 end)