decaffeinate: rename test/unit/coffee to test/unit/js
This commit is contained in:
148
test/unit/js/OutputFileOptimiserTests.js
Normal file
148
test/unit/js/OutputFileOptimiserTests.js
Normal file
@@ -0,0 +1,148 @@
|
||||
/* eslint-disable
|
||||
no-return-assign,
|
||||
no-unused-vars,
|
||||
node/no-deprecated-api,
|
||||
*/
|
||||
// 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/OutputFileOptimiser');
|
||||
const path = require("path");
|
||||
const { expect } = require("chai");
|
||||
const { EventEmitter } = require("events");
|
||||
|
||||
describe("OutputFileOptimiser", function() {
|
||||
beforeEach(function() {
|
||||
this.OutputFileOptimiser = SandboxedModule.require(modulePath, { requires: {
|
||||
"fs": (this.fs = {}),
|
||||
"path": (this.Path = {}),
|
||||
"child_process": { spawn: (this.spawn = sinon.stub())
|
||||
},
|
||||
"logger-sharelatex": { log: sinon.stub(), warn: sinon.stub() },
|
||||
"./Metrics" : {}
|
||||
}
|
||||
});
|
||||
this.directory = "/test/dir";
|
||||
return this.callback = sinon.stub();
|
||||
});
|
||||
|
||||
describe("optimiseFile", function() {
|
||||
beforeEach(function() {
|
||||
this.src = "./output.pdf";
|
||||
return this.dst = "./output.pdf";
|
||||
});
|
||||
|
||||
describe("when the file is not a pdf file", function() {
|
||||
beforeEach(function(done){
|
||||
this.src = "./output.log";
|
||||
this.OutputFileOptimiser.checkIfPDFIsOptimised = sinon.stub().callsArgWith(1, null, false);
|
||||
this.OutputFileOptimiser.optimisePDF = sinon.stub().callsArgWith(2, null);
|
||||
return this.OutputFileOptimiser.optimiseFile(this.src, this.dst, done);
|
||||
});
|
||||
|
||||
it("should not check if the file is optimised", function() {
|
||||
return this.OutputFileOptimiser.checkIfPDFIsOptimised.calledWith(this.src).should.equal(false);
|
||||
});
|
||||
|
||||
return it("should not optimise the file", function() {
|
||||
return this.OutputFileOptimiser.optimisePDF.calledWith(this.src, this.dst).should.equal(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe("when the pdf file is not optimised", function() {
|
||||
beforeEach(function(done) {
|
||||
this.OutputFileOptimiser.checkIfPDFIsOptimised = sinon.stub().callsArgWith(1, null, false);
|
||||
this.OutputFileOptimiser.optimisePDF = sinon.stub().callsArgWith(2, null);
|
||||
return this.OutputFileOptimiser.optimiseFile(this.src, this.dst, done);
|
||||
});
|
||||
|
||||
it("should check if the pdf is optimised", function() {
|
||||
return this.OutputFileOptimiser.checkIfPDFIsOptimised.calledWith(this.src).should.equal(true);
|
||||
});
|
||||
|
||||
return it("should optimise the pdf", function() {
|
||||
return this.OutputFileOptimiser.optimisePDF.calledWith(this.src, this.dst).should.equal(true);
|
||||
});
|
||||
});
|
||||
|
||||
return describe("when the pdf file is optimised", function() {
|
||||
beforeEach(function(done) {
|
||||
this.OutputFileOptimiser.checkIfPDFIsOptimised = sinon.stub().callsArgWith(1, null, true);
|
||||
this.OutputFileOptimiser.optimisePDF = sinon.stub().callsArgWith(2, null);
|
||||
return this.OutputFileOptimiser.optimiseFile(this.src, this.dst, done);
|
||||
});
|
||||
|
||||
it("should check if the pdf is optimised", function() {
|
||||
return this.OutputFileOptimiser.checkIfPDFIsOptimised.calledWith(this.src).should.equal(true);
|
||||
});
|
||||
|
||||
return it("should not optimise the pdf", function() {
|
||||
return this.OutputFileOptimiser.optimisePDF.calledWith(this.src, this.dst).should.equal(false);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
return describe("checkIfPDFISOptimised", function() {
|
||||
beforeEach(function() {
|
||||
this.callback = sinon.stub();
|
||||
this.fd = 1234;
|
||||
this.fs.open = sinon.stub().yields(null, this.fd);
|
||||
this.fs.read = sinon.stub().withArgs(this.fd).yields(null, 100, new Buffer("hello /Linearized 1"));
|
||||
this.fs.close = sinon.stub().withArgs(this.fd).yields(null);
|
||||
return this.OutputFileOptimiser.checkIfPDFIsOptimised(this.src, this.callback);
|
||||
});
|
||||
|
||||
describe("for a linearised file", function() {
|
||||
beforeEach(function() {
|
||||
this.fs.read = sinon.stub().withArgs(this.fd).yields(null, 100, new Buffer("hello /Linearized 1"));
|
||||
return this.OutputFileOptimiser.checkIfPDFIsOptimised(this.src, this.callback);
|
||||
});
|
||||
|
||||
it("should open the file", function() {
|
||||
return this.fs.open.calledWith(this.src, "r").should.equal(true);
|
||||
});
|
||||
|
||||
it("should read the header", function() {
|
||||
return this.fs.read.calledWith(this.fd).should.equal(true);
|
||||
});
|
||||
|
||||
it("should close the file", function() {
|
||||
return this.fs.close.calledWith(this.fd).should.equal(true);
|
||||
});
|
||||
|
||||
return it("should call the callback with a true result", function() {
|
||||
return this.callback.calledWith(null, true).should.equal(true);
|
||||
});
|
||||
});
|
||||
|
||||
return describe("for an unlinearised file", function() {
|
||||
beforeEach(function() {
|
||||
this.fs.read = sinon.stub().withArgs(this.fd).yields(null, 100, new Buffer("hello not linearized 1"));
|
||||
return this.OutputFileOptimiser.checkIfPDFIsOptimised(this.src, this.callback);
|
||||
});
|
||||
|
||||
it("should open the file", function() {
|
||||
return this.fs.open.calledWith(this.src, "r").should.equal(true);
|
||||
});
|
||||
|
||||
it("should read the header", function() {
|
||||
return this.fs.read.calledWith(this.fd).should.equal(true);
|
||||
});
|
||||
|
||||
it("should close the file", function() {
|
||||
return this.fs.close.calledWith(this.fd).should.equal(true);
|
||||
});
|
||||
|
||||
return it("should call the callback with a false result", function() {
|
||||
return this.callback.calledWith(null, false).should.equal(true);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user