| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- SandboxedModule = require('sandboxed-module')
- sinon = require('sinon')
- require('chai').should()
- modulePath = require('path').join __dirname, '../../../app/js/DraftModeManager'
- describe 'DraftModeManager', ->
- beforeEach ->
- @DraftModeManager = SandboxedModule.require modulePath, requires:
- "fs": @fs = {}
- "logger-sharelatex": @logger = {log: () ->}
-
- describe "_injectDraftOption", ->
- it "should add draft option into documentclass with existing options", ->
- @DraftModeManager
- ._injectDraftOption('''
- \\documentclass[a4paper,foo=bar]{article}
- ''')
- .should.equal('''
- \\documentclass[draft,a4paper,foo=bar]{article}
- ''')
- it "should add draft option into documentclass with no options", ->
- @DraftModeManager
- ._injectDraftOption('''
- \\documentclass{article}
- ''')
- .should.equal('''
- \\documentclass[draft]{article}
- ''')
-
- describe "injectDraftMode", ->
- beforeEach ->
- @filename = "/mock/filename.tex"
- @callback = sinon.stub()
- content = '''
- \\documentclass{article}
- \\begin{document}
- Hello world
- \\end{document}
- '''
- @fs.readFile = sinon.stub().callsArgWith(2, null, content)
- @fs.writeFile = sinon.stub().callsArg(2)
- @DraftModeManager.injectDraftMode @filename, @callback
-
- it "should read the file", ->
- @fs.readFile
- .calledWith(@filename, "utf8")
- .should.equal true
-
- it "should write the modified file", ->
- @fs.writeFile
- .calledWith(@filename, """
- \\documentclass[draft]{article}
- \\begin{document}
- Hello world
- \\end{document}
- """)
- .should.equal true
-
- it "should call the callback", ->
- @callback.called.should.equal true
|