diff --git a/test/add_test.mjs b/test/add_test.mjs index 75c09221e..55628988f 100644 --- a/test/add_test.mjs +++ b/test/add_test.mjs @@ -1,4 +1,4 @@ -import crypto from "crypto"; +import { calculateMD5 } from "./downloadutils.mjs"; import { execSync } from "child_process"; import fs from "fs"; @@ -22,53 +22,31 @@ if (!fs.existsSync(file)) { throw new Error(`PDF file does not exist '${file}'.`); } -function calculateMD5(pdfFile, callback) { - const hash = crypto.createHash("md5"); - const stream = fs.createReadStream(pdfFile); - stream.on("data", function (data) { - hash.update(data); - }); - stream.on("error", function (err) { - callback(err); - }); - stream.on("end", function () { - const 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"); - const randomLine = getRandomArbitrary(10, contents.length - 2); - contents.splice( - randomLine, - 0, - "!" + file.substring(file.lastIndexOf("/") + 1) - ); - fs.writeFileSync("test/pdfs/.gitignore", contents.join("\n")); +const md5 = await calculateMD5(file); - contents = fs.readFileSync(testManifest, "utf8"); - const pdf = file.substring(file.lastIndexOf("/") + 1, file.length - 4); - const randomPoint = getRandomArbitrary(100, contents.length - 20); - const bracket = contents.indexOf("},\n", randomPoint); - const 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}`); -}); +let contents = fs.readFileSync(gitIgnore, "utf8").split("\n"); +const 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"); +const pdf = file.substring(file.lastIndexOf("/") + 1, file.length - 4); +const randomPoint = getRandomArbitrary(100, contents.length - 20); +const bracket = contents.indexOf("},\n", randomPoint); +const 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}`); diff --git a/test/downloadutils.mjs b/test/downloadutils.mjs index 9fdbe4780..b79ed401b 100644 --- a/test/downloadutils.mjs +++ b/test/downloadutils.mjs @@ -128,4 +128,4 @@ async function verifyManifestFiles(manifest) { } } -export { downloadManifestFiles, verifyManifestFiles }; +export { calculateMD5, downloadManifestFiles, verifyManifestFiles };