Skip to content

Commit

Permalink
remove the usage, version, and install strings since these changes ar…
Browse files Browse the repository at this point in the history
…e false positives (#4)

* remove the usage, version, and install strings since these changes are false positives

* adding a command line arg to turn this on or off
  • Loading branch information
ktabors authored Dec 8, 2021
1 parent a3d4406 commit 2d276ef
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 4 deletions.
12 changes: 9 additions & 3 deletions src/args.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,15 @@ const disableMobileCommandParam = '-m';
const disableDesktopCommandParam = '-d';
const clusterSizeCommandParam = '-k';
const quietLoggingCommandParam = '-q';
const scrubHeaderCommandParam = '-h';

const defaultValues = {
screenshotLimit: -1,
disableDesktopScreenshots: false,
disableMobileScreenshots: false,
clusterMaxConcurrency: 10,
verboseLogMessages: true
verboseLogMessages: true,
scrubHeader: false
};

/**
Expand Down Expand Up @@ -56,7 +58,8 @@ function processArgs() {
clusterMaxConcurrency,
disableMobileScreenshots,
disableDesktopScreenshots,
verboseLogMessages
verboseLogMessages,
scrubHeader
} = defaultValues;

if (myArgs.includes(screenshotMaxCommandParam)) {
Expand Down Expand Up @@ -86,8 +89,11 @@ function processArgs() {
if (myArgs.includes(quietLoggingCommandParam)) {
verboseLogMessages = false;
}
if (myArgs.includes(scrubHeaderCommandParam)) {
scrubHeader = true;
}

return {screenshotLimit, clusterMaxConcurrency, disableMobileScreenshots, disableDesktopScreenshots, verboseLogMessages};
return {screenshotLimit, clusterMaxConcurrency, disableMobileScreenshots, disableDesktopScreenshots, verboseLogMessages, scrubHeader};
}

exports.getUrls = getUrls;
Expand Down
39 changes: 38 additions & 1 deletion src/crawl.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ let {
screenshotLimit,
disableDesktopScreenshots,
disableMobileScreenshots,
verboseLogMessages
verboseLogMessages,
scrubHeader
} = defaultParamValues;

/**
Expand All @@ -30,6 +31,7 @@ async function setupClusterAndCrawl({baselineDir, currentDir, urls, ...argValues
disableDesktopScreenshots = argValues.disableDesktopScreenshots;
disableMobileScreenshots = argValues.disableMobileScreenshots;
verboseLogMessages = argValues.verboseLogMessages;
scrubHeader = argValues.scrubHeader;

try {
cluster = await Cluster.launch({
Expand Down Expand Up @@ -168,10 +170,13 @@ async function crawlPage(page, {filename, rootPath, storageDirectory, url, visit
*/
async function screenshot(page, filename) {
if (!disableDesktopScreenshots) {
await scrubInstallAndVersion(page);

await page.setViewport({
width: 1366,
height: 784
});

// this seems to handle screenshot issues, might need to increase as we use this
await page.waitForTimeout(100);

Expand All @@ -184,11 +189,43 @@ async function screenshot(page, filename) {
if (!disableMobileScreenshots) {
await page.emulate(puppeteeriPhone11);

// This has to be called after the emulate to iPhone to work
await scrubInstallAndVersion(page);

await page.screenshot({
path: `${filename}_mobile.png`,
fullPage: true
});
}
}

/**
* The version, install, and usage can be different between the baseline and current
* so this will normalize to prevent false positives.
*/
async function scrubInstallAndVersion(page) {
if (scrubHeader) {
await page.evaluate(() => {
// removing the install package name
let install = document.body.querySelector('td code');
if (install && install.innerHTML && install.innerHTML.includes && install.innerHTML.includes('yarn add') && install.parentElement.parentElement.firstChild.innerHTML.includes('install')) {
install.innerHTML = 'yarn add';
// end remove the install package name

// removing the release version number
let version = install.parentElement.parentElement.nextElementSibling;
if (version && version.firstChild && version.firstChild.innerHTML && version.firstChild.innerHTML.includes('version')) {
version.lastChild.innerHTML = '';
}

// removing the usage package name
let usage = install.parentElement.parentElement.parentElement.lastChild;
if (usage && usage.firstChild && usage.firstChild.innerHTML && usage.firstChild.innerHTML.includes('usage')) {
usage.lastChild.innerHTML = usage.lastChild.innerHTML.substring(0, usage.lastChild.innerHTML.indexOf('\'')) + usage.lastChild.innerHTML.substring(usage.lastChild.innerHTML.lastIndexOf('\'') + 1);
}
}
});
}
}

exports.setupClusterAndCrawl = setupClusterAndCrawl;

0 comments on commit 2d276ef

Please sign in to comment.