mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-29 13:53:40 -05:00
61 lines
1.6 KiB
CoffeeScript
61 lines
1.6 KiB
CoffeeScript
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
|