decaffeinate: rename test/unit/coffee to test/unit/js
This commit is contained in:
111
test/unit/js/LatexRunnerTests.js
Normal file
111
test/unit/js/LatexRunnerTests.js
Normal file
@@ -0,0 +1,111 @@
|
||||
/* eslint-disable
|
||||
no-return-assign,
|
||||
no-unused-vars,
|
||||
*/
|
||||
// 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/LatexRunner');
|
||||
const Path = require("path");
|
||||
|
||||
describe("LatexRunner", function() {
|
||||
beforeEach(function() {
|
||||
let Timer;
|
||||
this.LatexRunner = SandboxedModule.require(modulePath, { requires: {
|
||||
"settings-sharelatex": (this.Settings = {
|
||||
docker: {
|
||||
socketPath: "/var/run/docker.sock"
|
||||
}
|
||||
}),
|
||||
"logger-sharelatex": (this.logger = { log: sinon.stub(), error: sinon.stub() }),
|
||||
"./Metrics": {
|
||||
Timer: (Timer = class Timer {
|
||||
done() {}
|
||||
})
|
||||
},
|
||||
"./CommandRunner": (this.CommandRunner = {})
|
||||
}
|
||||
});
|
||||
|
||||
this.directory = "/local/compile/directory";
|
||||
this.mainFile = "main-file.tex";
|
||||
this.compiler = "pdflatex";
|
||||
this.image = "example.com/image";
|
||||
this.callback = sinon.stub();
|
||||
this.project_id = "project-id-123";
|
||||
return this.env = {'foo': '123'};});
|
||||
|
||||
return describe("runLatex", function() {
|
||||
beforeEach(function() {
|
||||
return this.CommandRunner.run = sinon.stub().callsArg(6);
|
||||
});
|
||||
|
||||
describe("normally", function() {
|
||||
beforeEach(function() {
|
||||
return this.LatexRunner.runLatex(this.project_id, {
|
||||
directory: this.directory,
|
||||
mainFile: this.mainFile,
|
||||
compiler: this.compiler,
|
||||
timeout: (this.timeout = 42000),
|
||||
image: this.image,
|
||||
environment: this.env
|
||||
},
|
||||
this.callback);
|
||||
});
|
||||
|
||||
return it("should run the latex command", function() {
|
||||
return this.CommandRunner.run
|
||||
.calledWith(this.project_id, sinon.match.any, this.directory, this.image, this.timeout, this.env)
|
||||
.should.equal(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe("with an .Rtex main file", function() {
|
||||
beforeEach(function() {
|
||||
return this.LatexRunner.runLatex(this.project_id, {
|
||||
directory: this.directory,
|
||||
mainFile: "main-file.Rtex",
|
||||
compiler: this.compiler,
|
||||
image: this.image,
|
||||
timeout: (this.timeout = 42000)
|
||||
},
|
||||
this.callback);
|
||||
});
|
||||
|
||||
return it("should run the latex command on the equivalent .tex file", function() {
|
||||
const command = this.CommandRunner.run.args[0][1];
|
||||
const mainFile = command.slice(-1)[0];
|
||||
return mainFile.should.equal("$COMPILE_DIR/main-file.tex");
|
||||
});
|
||||
});
|
||||
|
||||
return describe("with a flags option", function() {
|
||||
beforeEach(function() {
|
||||
return this.LatexRunner.runLatex(this.project_id, {
|
||||
directory: this.directory,
|
||||
mainFile: this.mainFile,
|
||||
compiler: this.compiler,
|
||||
image: this.image,
|
||||
timeout: (this.timeout = 42000),
|
||||
flags: ["-file-line-error", "-halt-on-error"]
|
||||
},
|
||||
this.callback);
|
||||
});
|
||||
|
||||
return it("should include the flags in the command", function() {
|
||||
const command = this.CommandRunner.run.args[0][1];
|
||||
const flags = command.filter(arg => (arg === "-file-line-error") || (arg === "-halt-on-error"));
|
||||
flags.length.should.equal(2);
|
||||
flags[0].should.equal("-file-line-error");
|
||||
return flags[1].should.equal("-halt-on-error");
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user