ProjectApiControllerTests.coffee 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. should = require('chai').should()
  2. modulePath = "../../../../app/js/Features/Project/ProjectApiController"
  3. SandboxedModule = require('sandboxed-module')
  4. sinon = require('sinon')
  5. require('chai').should()
  6. describe 'Project api controller', ->
  7. beforeEach ->
  8. @ProjectDetailsHandler =
  9. getDetails : sinon.stub()
  10. @controller = SandboxedModule.require modulePath, requires:
  11. "./ProjectDetailsHandler":@ProjectDetailsHandler
  12. 'logger-sharelatex':
  13. log:->
  14. @project_id = "321l3j1kjkjl"
  15. @req =
  16. params:
  17. project_id:@project_id
  18. session:
  19. destroy:sinon.stub()
  20. @res = {}
  21. @projDetails = {name:"something"}
  22. describe "getProjectDetails", ->
  23. it "should ask the project details handler for proj details", (done)->
  24. @ProjectDetailsHandler.getDetails.callsArgWith(1, null, @projDetails)
  25. @res.json = (data)=>
  26. @ProjectDetailsHandler.getDetails.calledWith(@project_id).should.equal true
  27. data.should.deep.equal @projDetails
  28. done()
  29. @controller.getProjectDetails @req, @res
  30. it "should send a 500 if there is an error", (done)->
  31. @ProjectDetailsHandler.getDetails.callsArgWith(1, "error")
  32. @res.send = (resCode)=>
  33. resCode.should.equal 500
  34. done()
  35. @controller.getProjectDetails @req, @res
  36. it "should destroy the session", (done)->
  37. @ProjectDetailsHandler.getDetails.callsArgWith(1, null, @projDetails)
  38. @res.json = (data)=>
  39. @req.session.destroy.called.should.equal true
  40. done()
  41. @controller.getProjectDetails @req, @res