Browse Source

Test Observable.reject;

bjorn 10 years ago
parent
commit
7c85465843
2 changed files with 25 additions and 0 deletions
  1. 1 0
      tests/observable.lua
  2. 24 0
      tests/reject.lua

+ 1 - 0
tests/observable.lua

@@ -167,4 +167,5 @@ describe('Observable', function()
   dofile('tests/pack.lua')
   dofile('tests/pluck.lua')
   dofile('tests/reduce.lua')
+  dofile('tests/reject.lua')
 end)

+ 24 - 0
tests/reject.lua

@@ -0,0 +1,24 @@
+describe('reject', function()
+  it('uses the identity function as the predicate if none is specified', function()
+    local observable = Rx.Observable.fromTable({false, true}):reject()
+    expect(observable).to.produce(false)
+  end)
+
+  it('passes all arguments to the predicate', function()
+    local predicate = spy()
+    Rx.Observable.fromTable({{1, 2}, {3, 4, 5}}, ipairs):unpack():reject(predicate):subscribe()
+    expect(predicate).to.equal({{1, 2}, {3, 4, 5}})
+  end)
+
+  it('does not produce elements that the predicate returns true for', function()
+    local predicate = function(x) return x % 2 == 0 end
+    local observable = Rx.Observable.fromRange(1, 5):reject(predicate)
+    expect(observable).to.produce(1, 3, 5)
+  end)
+
+  it('errors when its parent errors', function()
+    local observable = Rx.Observable.fromValue(''):map(function(x) return x() end)
+    expect(observable.subscribe).to.fail()
+    expect(observable:reject().subscribe).to.fail()
+  end)
+end)