code: /* eslint-disable
      no-return-assign,
  */
  // TODO: This file was created by bulk-decaffeinate.
  // Fix any style issues and re-enable lint.
  /*
   * decaffeinate suggestions:
   * DS102: Remove unnecessary code created because of implicit returns
   * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
   */
  const SandboxedModule = require('sandboxed-module')
  const sinon = require('sinon')
  require('chai').should()
  const modulePath = require('path').join(
    __dirname,
    '../../../app/js/DraftModeManager'
  )
  
  describe('DraftModeManager', function () {
    beforeEach(function () {
      return (this.DraftModeManager = SandboxedModule.require(modulePath, {
        requires: {
          fs: (this.fs = {}),
          'logger-sharelatex': (this.logger = { log() {} })
        }
      }))
    })
  
    describe('_injectDraftOption', function () {
      it('should add draft option into documentclass with existing options', function () {
        return this.DraftModeManager._injectDraftOption(`\
  \\documentclass[a4paper,foo=bar]{article}\
  `).should.equal(`\
  \\documentclass[draft,a4paper,foo=bar]{article}\
  `)
      })
  
      return it('should add draft option into documentclass with no options', function () {
        return this.DraftModeManager._injectDraftOption(`\
  \\documentclass{article}\
  `).should.equal(`\
  \\documentclass[draft]{article}\
  `)
      })
    })
  
    return describe('injectDraftMode', function () {
      beforeEach(function () {
        this.filename = '/mock/filename.tex'
        this.callback = sinon.stub()
        const content = `\
  \\documentclass{article}
  \\begin{document}
  Hello world
  \\end{document}\
  `
        this.fs.readFile = sinon.stub().callsArgWith(2, null, content)
        this.fs.writeFile = sinon.stub().callsArg(2)
        return this.DraftModeManager.injectDraftMode(this.filename, this.callback)
      })
  
      it('should read the file', function () {
        return this.fs.readFile
          .calledWith(this.filename, 'utf8')
          .should.equal(true)
      })
  
      it('should write the modified file', function () {
        return this.fs.writeFile
          .calledWith(
            this.filename,
            `\
  \\documentclass[draft]{article}
  \\begin{document}
  Hello world
  \\end{document}\
  `
          )
          .should.equal(true)
      })
  
      return it('should call the callback', function () {
        return this.callback.called.should.equal(true)
      })
    })
  })
  