Socket
Socket
Sign inDemoInstall

mocha-headless-chrome

Package Overview
Dependencies
Maintainers
1
Versions
33
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mocha-headless-chrome - npm Package Compare versions

Comparing version 1.0.2 to 1.1.1

package-lock.json

5

package.json
{
"name": "mocha-headless-chrome",
"version": "1.0.2",
"version": "1.1.1",
"description": "Run client-side mocha tests in the command line through headless Chrome",
"main": "runner.js",
"bin": "./bin/start",
"engines": {
"node": ">=6.4.0"
},
"scripts": {

@@ -8,0 +11,0 @@ "start": "node cli -f example-page.html"

2

README.md

@@ -7,2 +7,4 @@ # mocha-headless-chrome

Node 6.4.0+ is supported.
## Getting Started

@@ -9,0 +11,0 @@

@@ -37,65 +37,52 @@ 'use strict';

module.exports = async ({ file, reporter, timeout, width, height }) => {
const url = path.resolve(file);
const log = [];
function configureViewport(width, height, page) {
if (!width && !height) return page;
try {
const browser = await puppeteer.launch({
ignoreHTTPSErrors: true,
headless: true
});
const page = await browser.newPage();
let viewport = page.viewport();
width && (viewport.width = width);
height && (viewport.height = height);
return page.setViewport(viewport).then(() => page);
}
if (width || height) {
let viewport = page.viewport();
width && (viewport.width = width);
height && (viewport.height = height);
await page.setViewport(viewport);
}
function handleConsole(...args) {
// process stdout stub
let isStdout = args[0] === 'stdout:';
isStdout && (args = args.slice(1));
page.on('console', (...args) => {
// save console.log arguments
let json = JSON.stringify(args);
let del = args[1] === "\u001b[2K";
let begin = args[1] === "\u001b[0G";
log.push({ json, del, begin });
let msg = util.format(...args);
!isStdout && (msg += '\n');
process.stdout.write(msg);
}
// process stdout stub
let isStdout = args[0] === 'stdout:';
isStdout && (args = args.slice(1));
function onError(err) {
console.error(err);
process.exit(1);
}
let msg = util.format(...args);
!isStdout && (msg += '\n');
process.stdout.write(msg);
});
module.exports = function({ file, reporter, timeout, width, height }) {
const url = path.resolve(file);
const options = {
ignoreHTTPSErrors: true,
headless: true
};
page.on('dialog', async dialog => {
await dialog.dismiss();
});
puppeteer
.launch(options)
.then(browser => browser.newPage()
.then(configureViewport.bind(this, width, height))
.then(page => {
page.on('console', handleConsole);
page.on('dialog', dialog => dialog.dismiss());
page.on('pageerror', err => console.error(err));
page.on('pageerror', async err => {
console.error(err);
});
// page.on('request', request => {
// if (/\.(png|jpg|jpeg|gif|webp)$/i.test(request.url))
// request.abort();
// else
// request.continue();
// });
await page.evaluateOnNewDocument(initMocha, reporter);
await page.goto(`file://${url}`);
await page.waitForFunction(() => window.testsCompleted, { timeout: timeout });
process.stdout.write('\n');
browser.close();
//log.forEach(msg => console.log(`${msg.json} = ${msg.del} == ${msg.begin}`));
} catch (err) {
console.error(err);
process.exit(1);
}
return page.evaluateOnNewDocument(initMocha, reporter)
.then(() => page.goto(`file://${url}`))
.then(() => page.waitForFunction(() => window.testsCompleted, { timeout: timeout }))
.then(() => {
process.stdout.write('\n');
browser.close();
});
}))
.catch(onError);
};
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc