ProjectDetailsHandlerTests.coffee 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. should = require('chai').should()
  2. modulePath = "../../../../app/js/Features/Project/ProjectDetailsHandler"
  3. SandboxedModule = require('sandboxed-module')
  4. sinon = require('sinon')
  5. assert = require("chai").assert
  6. require('chai').should()
  7. describe 'Project details handler', ->
  8. beforeEach ->
  9. @project_id = "321l3j1kjkjl"
  10. @user_id = "user-id-123"
  11. @project =
  12. name: "project"
  13. description: "this is a great project"
  14. something:"should not exist"
  15. compiler: "latexxxxxx"
  16. owner_ref: @user_id
  17. @user =
  18. features: "mock-features"
  19. @ProjectGetter =
  20. getProjectWithoutDocLines: sinon.stub().callsArgWith(1, null, @project)
  21. @ProjectModel =
  22. update: sinon.stub()
  23. @UserGetter =
  24. getUser: sinon.stub().callsArgWith(1, null, @user)
  25. @handler = SandboxedModule.require modulePath, requires:
  26. "./ProjectGetter":@ProjectGetter
  27. '../../models/Project': Project:@ProjectModel
  28. "../User/UserGetter": @UserGetter
  29. 'logger-sharelatex':
  30. log:->
  31. err:->
  32. describe "getDetails", ->
  33. it "should find the project and owner", (done)->
  34. @handler.getDetails @project_id, (err, details)=>
  35. details.name.should.equal @project.name
  36. details.description.should.equal @project.description
  37. details.compiler.should.equal @project.compiler
  38. details.features.should.equal @user.features
  39. assert.equal(details.something, undefined)
  40. done()
  41. it "should return the error", (done)->
  42. error = "some error"
  43. @ProjectGetter.getProjectWithoutDocLines.callsArgWith(1, error)
  44. @handler.getDetails @project_id, (err)=>
  45. err.should.equal error
  46. done()
  47. describe "setProjectDescription", ->
  48. beforeEach ->
  49. @description = "updated teh description"
  50. it "should update the project detials", (done)->
  51. @ProjectModel.update.callsArgWith(2)
  52. @handler.setProjectDescription @project_id, @description, =>
  53. @ProjectModel.update.calledWith({_id:@project_id}, {description:@description}).should.equal true
  54. done()