SubscriptionLocatorTests.coffee 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. SandboxedModule = require('sandboxed-module')
  2. should = require('chai').should()
  3. sinon = require 'sinon'
  4. modulePath = "../../../../app/js/Features/Subscription/SubscriptionLocator"
  5. assert = require("chai").assert
  6. ObjectId = require('mongoose').Types.ObjectId
  7. describe "Subscription Locator Tests", ->
  8. beforeEach ->
  9. @user =
  10. _id: "5208dd34438842e2db333333"
  11. @subscription = {hello:"world"}
  12. @Subscription =
  13. findOne: sinon.stub()
  14. find: sinon.stub()
  15. @SubscriptionLocator = SandboxedModule.require modulePath, requires:
  16. '../../models/Subscription': Subscription:@Subscription
  17. "logger-sharelatex": log:->
  18. describe "finding users subscription", ->
  19. it "should send the users features", (done)->
  20. @Subscription.findOne.callsArgWith(1, null, @subscription)
  21. @SubscriptionLocator.getUsersSubscription @user, (err, subscription)=>
  22. @Subscription.findOne.calledWith({"admin_id":@user._id}).should.equal true
  23. subscription.should.equal @subscription
  24. done()
  25. it "should error if not found", (done)->
  26. @Subscription.findOne.callsArgWith(1, "not found")
  27. @SubscriptionLocator.getUsersSubscription @user, (err, subscription)=>
  28. err.should.exist
  29. done()
  30. it "should take a user id rather than the user object", (done)->
  31. @Subscription.findOne.callsArgWith(1, null, @subscription)
  32. @SubscriptionLocator.getUsersSubscription @user._id, (err, subscription)=>
  33. @Subscription.findOne.calledWith({"admin_id":@user._id}).should.equal true
  34. subscription.should.equal @subscription
  35. done()