ProjectControllerTests.coffee 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. should = require('chai').should()
  2. SandboxedModule = require('sandboxed-module')
  3. assert = require('assert')
  4. path = require('path')
  5. sinon = require('sinon')
  6. modulePath = path.join __dirname, "../../../../app/js/Features/Project/ProjectController"
  7. expect = require("chai").expect
  8. describe "ProjectController", ->
  9. beforeEach ->
  10. @project_id = "123213jlkj9kdlsaj"
  11. @settings = {}
  12. @ProjectDeleter =
  13. deleteProject: sinon.stub().callsArgWith(1)
  14. @ProjectDuplicator =
  15. duplicate: sinon.stub().callsArgWith(3, null, {_id:@project_id})
  16. @ProjectController = SandboxedModule.require modulePath, requires:
  17. "settings-sharelatex":@settings
  18. "logger-sharelatex": log:->
  19. "./ProjectDeleter": @ProjectDeleter
  20. "./ProjectDuplicator": @ProjectDuplicator
  21. @user =
  22. _id:"!£123213kjljkl"
  23. first_name: "bjkdsjfk"
  24. @projectName = "£12321jkj9ujkljds"
  25. @req =
  26. params:
  27. Project_id: @project_id
  28. session:
  29. user: @user
  30. body:
  31. projectName: @projectName
  32. @res = {}
  33. describe "deleteProject", ->
  34. it "should tell the project deleter", (done)->
  35. @res.send = (code)=>
  36. @ProjectDeleter.deleteProject.calledWith(@project_id).should.equal true
  37. code.should.equal 200
  38. done()
  39. @ProjectController.deleteProject @req, @res
  40. describe "cloneProject", ->
  41. it "should call the project duplicator", (done)->
  42. @res.send = (json)=>
  43. @ProjectDuplicator.duplicate.calledWith(@user, @project_id, @projectName).should.equal true
  44. json.project_id.should.equal @project_id
  45. done()
  46. @ProjectController.cloneProject @req, @res