ProjectUpdateHandlerTests.coffee 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. sinon = require('sinon')
  2. chai = require('chai').should()
  3. modulePath = "../../../../app/js/Features/Project/ProjectUpdateHandler.js"
  4. SandboxedModule = require('sandboxed-module')
  5. describe 'ProjectUpdateHandler', ->
  6. beforeEach ->
  7. @ProjectModel = class Project
  8. @ProjectModel.update = sinon.stub().callsArg(3)
  9. @handler = SandboxedModule.require modulePath, requires:
  10. '../../models/Project':{Project:@ProjectModel}
  11. 'logger-sharelatex' : { log: sinon.stub() }
  12. describe 'marking a project as recently updated', ->
  13. it 'should send an update to mongo', (done)->
  14. project_id = "project_id"
  15. user_id = "mock_user_id"
  16. timestamp = Date.now()
  17. @handler.markAsUpdated project_id, user_id, timestamp, (err)=>
  18. @ProjectModel.update.calledWith({
  19. _id: project_id,
  20. }, {
  21. lastUpdated: new Date(timestamp),
  22. lastUpdatedBy: user_id
  23. }).should.equal true
  24. done()
  25. describe "markAsOpened", ->
  26. it 'should send an update to mongo', (done)->
  27. project_id = "project_id"
  28. @handler.markAsOpened project_id, (err)=>
  29. args = @ProjectModel.update.args[0]
  30. args[0]._id.should.equal project_id
  31. date = args[1].lastOpened+""
  32. now = Date.now()+""
  33. date.substring(0,5).should.equal now.substring(0,5)
  34. done()
  35. describe "markAsInactive", ->
  36. it 'should send an update to mongo', (done)->
  37. project_id = "project_id"
  38. @handler.markAsInactive project_id, (err)=>
  39. args = @ProjectModel.update.args[0]
  40. args[0]._id.should.equal project_id
  41. args[1].active.should.equal false
  42. done()
  43. describe "markAsActive", ->
  44. it 'should send an update to mongo', (done)->
  45. project_id = "project_id"
  46. @handler.markAsActive project_id, (err)=>
  47. args = @ProjectModel.update.args[0]
  48. args[0]._id.should.equal project_id
  49. args[1].active.should.equal true
  50. done()