ProjectDeleterTests.coffee 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. should = require('chai').should()
  2. modulePath = "../../../../app/js/Features/Project/ProjectDeleter"
  3. SandboxedModule = require('sandboxed-module')
  4. sinon = require('sinon')
  5. describe 'Project deleter', ->
  6. beforeEach ->
  7. @Project =
  8. update: sinon.stub().callsArgWith(3)
  9. remove: sinon.stub().callsArgWith(1)
  10. @editorController = notifyUsersProjectHasBeenDeletedOrRenamed : sinon.stub().callsArgWith(1)
  11. @deleter = SandboxedModule.require modulePath, requires:
  12. "../Editor/EditorController": @editorController
  13. '../../models/Project':{Project:@Project}
  14. 'logger-sharelatex':
  15. log:->
  16. describe "mark as deleted by external source", ->
  17. project_id = 1234
  18. it 'should update the project with the flag set to true', (done)->
  19. @deleter.markAsDeletedByExternalSource project_id, =>
  20. conditions = {_id:project_id}
  21. update = {deletedByExternalDataSource:true}
  22. @Project.update.calledWith(conditions, update).should.equal true
  23. done()
  24. it 'should tell the editor controler so users are notified', (done)->
  25. @deleter.markAsDeletedByExternalSource project_id, =>
  26. @editorController.notifyUsersProjectHasBeenDeletedOrRenamed.calledWith(project_id).should.equal true
  27. done()
  28. describe "deleteUsersProjects", ->
  29. it "should remove all the projects owned by the user_id", (done)->
  30. user_id = 1234
  31. @deleter.deleteUsersProjects user_id, =>
  32. @Project.remove.calledWith(owner_ref:user_id).should.equal true
  33. done()