ProjectOptionsHandlerTests.coffee 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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. imageRoot: "docker-repo/subdir"
  20. allowedImageNames: [
  21. {imageName: "texlive-0000.0", imageDesc: "test image 0"}
  22. {imageName: "texlive-1234.5", imageDesc: "test image 1"}
  23. ]
  24. 'logger-sharelatex':
  25. log:->
  26. err:->
  27. describe 'Setting the compiler', ->
  28. it 'should perform and update on mongo', (done)->
  29. @handler.setCompiler project_id, "xeLaTeX", (err)=>
  30. args = @projectModel.update.args[0]
  31. args[0]._id.should.equal project_id
  32. args[1].compiler.should.equal "xelatex"
  33. done()
  34. @projectModel.update.args[0][3]()
  35. it 'should not perform and update on mongo if it is not a reconised compiler', (done)->
  36. @handler.setCompiler project_id, "something", (err)=>
  37. @projectModel.update.called.should.equal false
  38. done()
  39. describe 'Setting the imageName', ->
  40. it 'should perform and update on mongo', (done)->
  41. @handler.setImageName project_id, "texlive-1234.5", (err)=>
  42. args = @projectModel.update.args[0]
  43. args[0]._id.should.equal project_id
  44. args[1].imageName.should.equal "docker-repo/subdir/texlive-1234.5"
  45. done()
  46. @projectModel.update.args[0][3]()
  47. it 'should not perform and update on mongo if it is not a reconised compiler', (done)->
  48. @handler.setImageName project_id, "something", (err)=>
  49. @projectModel.update.called.should.equal false
  50. done()
  51. describe "setting the spellCheckLanguage", ->
  52. it 'should perform and update on mongo', (done)->
  53. @handler.setSpellCheckLanguage project_id, "fr", (err)=>
  54. args = @projectModel.update.args[0]
  55. args[0]._id.should.equal project_id
  56. args[1].spellCheckLanguage.should.equal "fr"
  57. done()
  58. @projectModel.update.args[0][3]()
  59. it 'should not perform and update on mongo if it is not a reconised compiler', (done)->
  60. @handler.setSpellCheckLanguage project_id, "no a lang", (err)=>
  61. @projectModel.update.called.should.equal false
  62. done()
  63. it 'should perform and update on mongo if the language is blank (means turn it off)', (done)->
  64. @handler.setSpellCheckLanguage project_id, "", (err)=>
  65. @projectModel.update.called.should.equal true
  66. done()
  67. @projectModel.update.args[0][3]()