mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-29 21:33:47 -05:00
62 lines
1.6 KiB
CoffeeScript
62 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
|