UserControllerTests.coffee 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. sinon = require('sinon')
  2. chai = require('chai')
  3. should = chai.should()
  4. expect = chai.expect
  5. modulePath = "../../../../app/js/Features/User/UserController.js"
  6. SandboxedModule = require('sandboxed-module')
  7. events = require "events"
  8. MockResponse = require "../helpers/MockResponse"
  9. MockRequest = require "../helpers/MockRequest"
  10. ObjectId = require("mongojs").ObjectId
  11. describe "UserController", ->
  12. beforeEach ->
  13. @user =
  14. _id:"!@£!23123"
  15. @UserDeleter =
  16. deleteUser: sinon.stub().callsArgWith(1)
  17. @UserLocator =
  18. findById: sinon.stub().callsArgWith(1, null, @user)
  19. @NewsLetterManager =
  20. unsubscribe: sinon.stub().callsArgWith(1)
  21. @UserController = SandboxedModule.require modulePath, requires:
  22. "./UserDeleter": @UserDeleter
  23. "./UserLocator": @UserLocator
  24. '../Newsletter/NewsletterManager':@NewsLetterManager
  25. "logger-sharelatex": {log:->}
  26. @req = new MockRequest()
  27. @res = new MockResponse()
  28. @next = sinon.stub()
  29. @user_id = "323123"
  30. @req.session.user =
  31. _id = @user_id
  32. describe "deleteUser", ->
  33. it "should delete the user", (done)->
  34. @res.send = (code)=>
  35. @UserDeleter.deleteUser.calledWith(@user_id)
  36. code.should.equal 200
  37. done()
  38. @UserController.deleteUser @req, @res
  39. describe "unsubscribe", ->
  40. it "should send the user to unsubscribe", (done)->
  41. @res.send = (code)=>
  42. @NewsLetterManager.unsubscribe.calledWith(@user).should.equal true
  43. done()
  44. @UserController.unsubscribe @req, @res