Explorar el Código

Add unsubscription test for zip operator

Daniel Andrus hace 6 años
padre
commit
4a475209f1
Se han modificado 1 ficheros con 19 adiciones y 0 borrados
  1. 19 0
      tests/zip.lua

+ 19 - 0
tests/zip.lua

@@ -3,6 +3,25 @@ describe('zip', function()
     expect(Rx.Observable.fromRange(1, 5):zip()).to.produce(1, 2, 3, 4, 5)
   end)
 
+  it('unsubscribes from all input observables', function()
+    local unsubscribeA = spy()
+    local subscriptionA = Rx.Subscription.create(unsubscribeA)
+    local observableA = Rx.Observable.create(function(observer)
+      return subscriptionA
+    end)
+
+    local unsubscribeB = spy()
+    local subscriptionB = Rx.Subscription.create(unsubscribeB)
+    local observableB = Rx.Observable.create(function(observer)
+      return subscriptionB
+    end)
+
+    local subscription = Rx.Observable.zip(observableA, observableB):subscribe()
+    subscription:unsubscribe()
+    expect(#unsubscribeA).to.equal(1)
+    expect(#unsubscribeB).to.equal(1)
+  end)
+
   it('groups values produced by the sources by their index', function()
     local observableA = Rx.Observable.fromRange(1, 3)
     local observableB = Rx.Observable.fromRange(2, 4)