ProjectOptionsHandlerTests.coffee 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. sinon = require('sinon')
  2. chai = require('chai')
  3. should = chai.should()
  4. modulePath = "../../../../app/js/Features/Project/ProjectOptionsHandler.js"
  5. SandboxedModule = require('sandboxed-module')
  6. describe 'creating a project', ->
  7. project_id = "4eecaffcbffa66588e000008"
  8. beforeEach ->
  9. @projectModel = class Project
  10. constructor:(options)->
  11. @projectModel.update = sinon.spy()
  12. @handler = SandboxedModule.require modulePath, requires:
  13. '../../models/Project':{Project:@projectModel}
  14. 'settings-sharelatex':
  15. languages:[
  16. {name: "English", code: "en"}
  17. {name: "French", code: "fr"}
  18. ]
  19. 'logger-sharelatex':
  20. log:->
  21. err:->
  22. describe 'Setting the compiler', ->
  23. it 'should perform and update on mongo', (done)->
  24. @handler.setCompiler project_id, "xeLaTeX", (err)=>
  25. args = @projectModel.update.args[0]
  26. args[0]._id.should.equal project_id
  27. args[1].compiler.should.equal "xelatex"
  28. done()
  29. @projectModel.update.args[0][3]()
  30. it 'should not perform and update on mongo if it is not a reconised compiler', (done)->
  31. @handler.setCompiler project_id, "something", (err)=>
  32. @projectModel.update.called.should.equal false
  33. done()
  34. describe "setting the spellCheckLanguage", ->
  35. it 'should perform and update on mongo', (done)->
  36. @handler.setSpellCheckLanguage project_id, "fr", (err)=>
  37. args = @projectModel.update.args[0]
  38. args[0]._id.should.equal project_id
  39. args[1].spellCheckLanguage.should.equal "fr"
  40. done()
  41. @projectModel.update.args[0][3]()
  42. it 'should not perform and update on mongo if it is not a reconised compiler', (done)->
  43. @handler.setSpellCheckLanguage project_id, "no a lang", (err)=>
  44. @projectModel.update.called.should.equal false
  45. done()
  46. it 'should perform and update on mongo if the language is blank (means turn it off)', (done)->
  47. @handler.setSpellCheckLanguage project_id, "", (err)=>
  48. @projectModel.update.called.should.equal true
  49. done()
  50. @projectModel.update.args[0][3]()