/* 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) }) }) })