diff --git a/tests/runner.lua b/tests/runner.lua index 029aae1..155b1d5 100644 --- a/tests/runner.lua +++ b/tests/runner.lua @@ -56,7 +56,8 @@ if arg[1] then else local files = { 'observer', - 'observable' + 'observable', + 'subscription' } for i, file in ipairs(files) do diff --git a/tests/subscription.lua b/tests/subscription.lua new file mode 100644 index 0000000..199f379 --- /dev/null +++ b/tests/subscription.lua @@ -0,0 +1,26 @@ +describe('Subscription', function() + describe('create', function() + it('returns a Subscription', function() + local subscription = Rx.Subscription.create() + expect(subscription).to.be.an(Rx.Subscription) + end) + end) + + describe('unsubscribe', function() + it('runs the function passed to create', function() + local unsubscribe = spy() + local subscription = Rx.Subscription.create(unsubscribe) + subscription:unsubscribe() + expect(#unsubscribe).to.equal(1) + end) + + it('does not run the function passed to create more than once', function() + local unsubscribe = spy() + local subscription = Rx.Subscription.create(unsubscribe) + subscription:unsubscribe() + subscription:unsubscribe() + subscription:unsubscribe() + expect(#unsubscribe).to.equal(1) + end) + end) +end)