browsertrix-crawler/tests/screenshot.test.js

71 lines
2.3 KiB
JavaScript
Raw Normal View History

import child_process from "child_process";
import fs from "fs";
// screenshot
function screenshotWarcExists(name) {
const warcList = fs.readdirSync(`test-crawls/collections/${name}/archive/`);
for (const warc of warcList) {
if (warc.startsWith("screenshots-")) {
return true;
}
}
return false;
}
test("ensure basic crawl run with --screenshot passes", async () => {
child_process.execSync(
"docker run -v $PWD/test-crawls:/crawls webrecorder/browsertrix-crawler crawl --collection test-with-screenshots --url http://www.example.com/ --screenshot view --workers 2",
);
});
test("check that a screenshots warc file exists in the test collection", () => {
expect(screenshotWarcExists("test-with-screenshots")).toBe(true);
});
// fullPageScreenshot
test("ensure basic crawl run with --fullPageScreenshot passes", async () => {
child_process.execSync(
"docker run -v $PWD/test-crawls:/crawls webrecorder/browsertrix-crawler crawl --collection fullpage --url http://www.example.com/ --screenshot fullPage --workers 2",
);
});
test("check that a screenshots warc file exists in the fullpage collection", () => {
expect(screenshotWarcExists("fullpage")).toBe(true);
});
// thumbnail
test("ensure basic crawl run with --thumbnail passes", async () => {
child_process.execSync(
"docker run -v $PWD/test-crawls:/crawls webrecorder/browsertrix-crawler crawl --collection thumbnail --url http://www.example.com/ --screenshot thumbnail --workers 2",
);
});
test("check that a screenshots warc file exists in the thumbnail collection", () => {
expect(screenshotWarcExists("thumbnail")).toBe(true);
});
// combination
test("ensure basic crawl run with multiple screenshot types and --generateWACZ passes", async () => {
child_process.execSync(
"docker run -v $PWD/test-crawls:/crawls webrecorder/browsertrix-crawler crawl --collection combined --url http://www.example.com/ --screenshot thumbnail,view,fullPage --generateWACZ --workers 2",
);
});
test("check that a screenshots warc file exists in the combined collection", () => {
expect(screenshotWarcExists("combined")).toBe(true);
});
test("check that a wacz file exists in the combined collection", () => {
const waczExists = fs.existsSync(
"test-crawls/collections/combined/combined.wacz",
);
expect(waczExists).toBe(true);
});