SubscriptionGroupControllerTests.coffee 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. SandboxedModule = require('sandboxed-module')
  2. should = require('chai').should()
  3. sinon = require 'sinon'
  4. assert = require("chai").assert
  5. modulePath = "../../../../app/js/Features/Subscription/SubscriptionGroupController"
  6. MockResponse = require "../helpers/MockResponse"
  7. describe "SubscriptionGroupController", ->
  8. beforeEach ->
  9. @user = {_id:"!@312431",email:"user@email.com"}
  10. @adminUserId = "123jlkj"
  11. @subscriptionId = "123434325412"
  12. @user_email = "bob@gmail.com"
  13. @req =
  14. session:
  15. user:
  16. _id: @adminUserId
  17. email:@user_email
  18. params:
  19. subscriptionId:@subscriptionId
  20. query:{}
  21. @subscription = {
  22. _id: @subscriptionId
  23. }
  24. @GroupHandler =
  25. removeUserFromGroup: sinon.stub().callsArgWith(2)
  26. @SubscriptionLocator =
  27. findManagedSubscription: sinon.stub().callsArgWith(1, null, @subscription)
  28. @AuthenticationController =
  29. getLoggedInUserId: (req) -> req.session.user._id
  30. getSessionUser: (req) -> req.session.user
  31. @Controller = SandboxedModule.require modulePath, requires:
  32. "./SubscriptionGroupHandler":@GroupHandler
  33. "logger-sharelatex": log:->
  34. "./SubscriptionLocator": @SubscriptionLocator
  35. '../Authentication/AuthenticationController': @AuthenticationController
  36. describe "removeUserFromGroup", ->
  37. it "should use the subscription id for the logged in user and take the user id from the params", (done)->
  38. userIdToRemove = "31231"
  39. @req.params = user_id: userIdToRemove
  40. @req.entity = @subscription
  41. res =
  42. send : =>
  43. @GroupHandler.removeUserFromGroup.calledWith(@subscriptionId, userIdToRemove).should.equal true
  44. done()
  45. @Controller.removeUserFromGroup @req, res