ProjectUpdateHandlerTests.coffee 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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. describe 'marking a project as recently updated', ->
  12. it 'should send an update to mongo', (done)->
  13. project_id = "project_id"
  14. @handler.markAsUpdated project_id, (err)=>
  15. args = @ProjectModel.update.args[0]
  16. args[0]._id.should.equal project_id
  17. date = args[1].lastUpdated+""
  18. now = Date.now()+""
  19. date.substring(0,5).should.equal now.substring(0,5)
  20. done()
  21. describe "markAsOpened", ->
  22. it 'should send an update to mongo', (done)->
  23. project_id = "project_id"
  24. @handler.markAsOpened project_id, (err)=>
  25. args = @ProjectModel.update.args[0]
  26. args[0]._id.should.equal project_id
  27. date = args[1].lastOpened+""
  28. now = Date.now()+""
  29. date.substring(0,5).should.equal now.substring(0,5)
  30. done()
  31. describe "markAsInactive", ->
  32. it 'should send an update to mongo', (done)->
  33. project_id = "project_id"
  34. @handler.markAsInactive project_id, (err)=>
  35. args = @ProjectModel.update.args[0]
  36. args[0]._id.should.equal project_id
  37. args[1].inactive.should.equal true
  38. done()
  39. describe "markAsActive", ->
  40. it 'should send an update to mongo', (done)->
  41. project_id = "project_id"
  42. @handler.markAsActive project_id, (err)=>
  43. args = @ProjectModel.update.args[0]
  44. args[0]._id.should.equal project_id
  45. args[1]["$unset"].inactive.should.equal true
  46. done()