overleaf/services/web/test/unit/coffee/Subscription/SubscriptionLocatorTests.coffee

52 lines
1.9 KiB
CoffeeScript
Raw Normal View History

2014-02-12 05:23:40 -05:00
SandboxedModule = require('sandboxed-module')
should = require('chai').should()
sinon = require 'sinon'
modulePath = "../../../../app/js/Features/Subscription/SubscriptionLocator"
assert = require("chai").assert
ObjectId = require('mongoose').Types.ObjectId
2014-02-12 05:23:40 -05:00
describe "Subscription Locator Tests", ->
beforeEach ->
@user =
_id: "5208dd34438842e2db333333"
@subscription = {hello:"world"}
@Subscription =
findOne: sinon.stub()
find: sinon.stub()
2014-02-12 05:23:40 -05:00
@SubscriptionLocator = SandboxedModule.require modulePath, requires:
'../../models/Subscription': Subscription:@Subscription
"logger-sharelatex": log:->
describe "finding users subscription", ->
it "should send the users features", (done)->
@Subscription.findOne.callsArgWith(1, null, @subscription)
@SubscriptionLocator.getUsersSubscription @user, (err, subscription)=>
@Subscription.findOne.calledWith({"admin_id":@user._id}).should.equal true
subscription.should.equal @subscription
done()
it "should error if not found", (done)->
@Subscription.findOne.callsArgWith(1, "not found")
@SubscriptionLocator.getUsersSubscription @user, (err, subscription)=>
err.should.exist
done()
it "should take a user id rather than the user object", (done)->
@Subscription.findOne.callsArgWith(1, null, @subscription)
@SubscriptionLocator.getUsersSubscription @user._id, (err, subscription)=>
@Subscription.findOne.calledWith({"admin_id":@user._id}).should.equal true
subscription.should.equal @subscription
done()
describe "finding managed subscription", ->
it "should query the database", (done)->
@Subscription.findOne.callsArgWith(1, null, @subscription)
@SubscriptionLocator.findManagedSubscription @user._id, (err, subscription)=>
@Subscription.findOne.calledWith({"manager_ids":@user._id}).should.equal true
subscription.should.equal @subscription
done()