Skip to content

Commit

Permalink
feat: write coverage on page close, browser close
Browse files Browse the repository at this point in the history
  • Loading branch information
aadityataparia committed Jun 6, 2019
1 parent 952ae5b commit 5f8e1a4
Show file tree
Hide file tree
Showing 6 changed files with 58 additions and 26 deletions.
23 changes: 17 additions & 6 deletions dist/sifrr.dev.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion dist/sifrr.dev.js.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/sifrr.dev.min.js

Large diffs are not rendered by default.

25 changes: 18 additions & 7 deletions dist/sifrr.dev.module.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion dist/sifrr.dev.module.js.map

Large diffs are not rendered by default.

30 changes: 20 additions & 10 deletions src/test/loadbrowser.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,30 @@ const path = require('path');
const writeCoverage = require('./writecoverage');
const puppeteer = require('puppeteer');

function setPageGoto(p, nycReport) {
async function writePageCoverage(p, nycReport) {
/* istanbul ignore next */
const jsCoverage = await p.evaluate(() => window.__coverage__);
writeCoverage(jsCoverage, path.join(nycReport, `./${Date.now()}-browser-coverage.json`));
}

function setPageForCoverage(p, nycReport) {
p.goto = async (url, options) => {
/* istanbul ignore next */
const jsCoverage = await p.evaluate(() => window.__coverage__);
writeCoverage(jsCoverage, path.join(nycReport, `./${Date.now()}-browser-coverage.json`));
await writePageCoverage(p, nycReport);
const ret = p.mainFrame().goto(url, options);
return ret;
};

p._close = p.close;
p.close = async () => {
await writePageCoverage(p, nycReport);
return p._close();
};
}

module.exports = async function(root, coverage, nycReport = path.join(root, './.nyc_output')) {
let browser;
if (!global.browser) {
browser = global.browser =await puppeteer.launch({
browser = global.browser = await puppeteer.launch({
// to make it work in circleci
args: [
'--no-sandbox',
Expand All @@ -31,22 +41,22 @@ module.exports = async function(root, coverage, nycReport = path.join(root, './.
browser.__newPage = browser.newPage;
browser.newPage = async () => {
const p = await browser.__newPage();
setPageGoto(p, nycReport);
setPageForCoverage(p, nycReport);
return p;
};

browser.__close = browser.close;
browser.close = async () => {
/* istanbul ignore next */
const jsCoverage = await page.evaluate(() => window.__coverage__);
writeCoverage(jsCoverage, path.join(nycReport, `./${Date.now()}-browser-coverage.json`));
const pages = await browser.pages();
for (let i = 0; i < pages.length; i++) {
await pages[i].close();
}
return browser.__close();
};
}
} else {
browser = global.browser;
}
// set browser and page global variables
const page = await browser.newPage();
await page.setViewport( { width: 1280, height: 800 } );

Expand Down

0 comments on commit 5f8e1a4

Please sign in to comment.