pdf.js/test/add_test.js
Jonas Jenwald a63f7ad486 Fix the linting errors, from the Prettier auto-formatting, that ESLint --fix couldn't handle
This patch makes the follow changes:
 - Remove no longer necessary inline `// eslint-disable-...` comments.
 - Fix `// eslint-disable-...` comments that Prettier moved down, thus causing new linting errors.
 - Concatenate strings which now fit on just one line.
 - Fix comments that are now too long.
 - Finally, and most importantly, adjust comments that Prettier moved down, since the new positions often is confusing or outright wrong.
2019-12-26 12:35:12 +01:00

75 lines
2.1 KiB
JavaScript

const fs = require("fs");
const crypto = require("crypto");
const execSync = require("child_process").execSync;
const testManifest = "test/test_manifest.json";
const pdfFolder = "test/pdfs/";
const gitIgnore = "test/pdfs/.gitignore";
if (process.argv.length < 3) {
console.log("\nUsage: node add_test.js FILE\n");
console.log(
` Add a PDF as a reference test. FILE must be located in ${pdfFolder}`
);
process.exit(1);
}
let file = process.argv[2];
if (!file.startsWith(pdfFolder)) {
throw new Error(`PDF file must be in '${pdfFolder}' directory.`);
}
if (!fs.existsSync(file)) {
throw new Error(`PDF file does not exist '${file}'.`);
}
function calculateMD5(file, callback) {
var hash = crypto.createHash("md5");
var stream = fs.createReadStream(file);
stream.on("data", function(data) {
hash.update(data);
});
stream.on("error", function(err) {
callback(err);
});
stream.on("end", function() {
var result = hash.digest("hex");
callback(null, result);
});
}
function getRandomArbitrary(min, max) {
return Math.floor(Math.random() * (max - min) + min);
}
calculateMD5(file, (err, md5) => {
if (err) {
throw new Error(err);
}
let contents = fs.readFileSync(gitIgnore, "utf8").split("\n");
let randomLine = getRandomArbitrary(10, contents.length - 2);
contents.splice(
randomLine,
0,
"!" + file.substring(file.lastIndexOf("/") + 1)
);
fs.writeFileSync("test/pdfs/.gitignore", contents.join("\n"));
contents = fs.readFileSync(testManifest, "utf8");
let pdf = file.substring(file.lastIndexOf("/") + 1, file.length - 4);
let randomPoint = getRandomArbitrary(100, contents.length - 20);
let bracket = contents.indexOf("},\n", randomPoint);
let out =
contents.substring(0, bracket) +
"},\n" +
` { "id": "${pdf}",\n` +
` "file": "pdfs/${pdf}.pdf",\n` +
` "md5": "${md5}",\n` +
' "rounds": 1,\n' +
' "type": "eq"\n' +
" " +
contents.substring(bracket);
fs.writeFileSync("test/test_manifest.json", out);
execSync(`git add ${testManifest} ${gitIgnore}`);
execSync(`git add ${file}`);
});