Prechádzať zdrojové kódy

Test Observable.concat;

bjorn 10 rokov pred
rodič
commit
2699a559d3
2 zmenil súbory, kde vykonal 39 pridanie a 0 odobranie
  1. 38 0
      tests/concat.lua
  2. 1 0
      tests/observable.lua

+ 38 - 0
tests/concat.lua

@@ -0,0 +1,38 @@
+describe('concat', function()
+  it('returns the first argument if it is the only argument', function()
+    local observable = Rx.Observable.fromRange(1, 3):concat()
+    expect(observable).to.produce(1, 2, 3)
+  end)
+
+  it('waits until one observable completes before producing items from the next', function()
+    local subjectA = Rx.Subject.create()
+    local subjectB = Rx.Subject.create()
+    local onNext, onError, onComplete = observableSpy(Rx.Observable.concat(subjectA, subjectB))
+    subjectA:onNext(1)
+    subjectB:onNext(2)
+    subjectA:onNext(3)
+    subjectA:onComplete()
+    subjectB:onNext(4)
+    subjectB:onNext(5)
+    subjectB:onComplete()
+    expect(onNext).to.equal({{1}, {3}, {4}, {5}})
+    expect(#onError).to.equal(0)
+    expect(#onComplete).to.equal(1)
+  end)
+
+  it('should error if any of the sources error', function()
+    local badObservable = Rx.Observable.create(function(observer) observer:onError('oh no') end)
+    local observable = Rx.Observable.fromValue(1):concat(Rx.Observable.fromValue(2), badObservable)
+    expect(observable.subscribe).to.fail()
+  end)
+
+  it('should complete once the rightmost observable completes', function()
+    local subject = Rx.Subject.create()
+    local onComplete = spy()
+    local observable = Rx.Observable.concat(Rx.Observable.fromRange(1, 5), Rx.Observable.fromRange(1, 5), subject)
+    observable:subscribe(function() end, function() end, onComplete)
+    expect(#onComplete).to.equal(0)
+    subject:onComplete()
+    expect(#onComplete).to.equal(1)
+  end)
+end)

+ 1 - 0
tests/observable.lua

@@ -153,4 +153,5 @@ describe('Observable', function()
   dofile('tests/changes.lua')
   dofile('tests/combine.lua')
   dofile('tests/compact.lua')
+  dofile('tests/concat.lua')
 end)