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 0.1.2 to 0.2.1

2

cli.js

@@ -10,2 +10,2 @@ 'use strict';

runner(argv.f);
runner(argv.f, argv.r);
{
"name": "mocha-headless-chrome",
"version": "0.1.2",
"version": "0.2.1",
"description": "Run client-side mocha tests in the command line through headless Chrome",

@@ -8,3 +8,3 @@ "main": "runner.js",

"scripts": {
"start": "node cli"
"start": "node cli -f example-page.html"
},

@@ -11,0 +11,0 @@ "repository": {

@@ -15,4 +15,10 @@ # mocha-headless-chrome

Prepare the test page using [the example](example-page.html). Run `window.runMochaHeadlessChrome()` function instead `mocha.run()` [if it is available](example-page.html#L16-L20).
Then run `mocha-headless-chrome` CLI and specify your test page path using `-f` parameter.
Optionally you can specify the reporter name using `-r` parameter. All mocha reporters are supported.
```
mocha-headless-chrome -f test-page.html
mocha-headless-chrome -f test-page.html -r nyan
```

@@ -7,5 +7,12 @@ 'use strict';

function initMocha() {
function initMocha(reporter) {
console.log = (console => {
const log = console.log.bind(console);
return (...args) => args.length ? log(...args) : log('');
})(console);
window.runMochaHeadlessChrome = function() {
// var MARK = '#mocha#';

@@ -23,10 +30,8 @@ //

Mocha.reporters.Base.useColors = true;
Mocha.reporters.Base.symbols.dot = '.';
Mocha.reporters.Base.symbols.ok = '✓';
Mocha.reporters.Base.symbols.err = '✖';
Mocha.reporters.Base.symbols.dot = '․';
Mocha.reporters.Base.symbols.comma = ',';
Mocha.reporters.Base.symbols.bang = '!';
Mocha.process.browser = false;
Mocha.process.stdout = {
write: data => console.log('stdout:', data)
};
mocha.setup({ reporter: Mocha.reporters.list });
mocha.setup({ reporter: Mocha.reporters[reporter] || Mocha.reporters.spec });
mocha.run().on('end', () => window.testsCompleted = true);

@@ -36,6 +41,6 @@ };

module.exports = async (filePath) => {
module.exports = async (filePath, reporter) => {
const url = path.resolve(filePath);
const log = [];
try {

@@ -50,4 +55,9 @@

page.on('console', (...args) => {
//console.log('>>>>>>>>>>>>>>>>>>begin', JSON.stringify(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 });
// process stdout stub
let isStdout = args[0] === 'stdout:';

@@ -76,9 +86,11 @@ isStdout && (args = args.slice(1));

await page.evaluateOnNewDocument(initMocha);
await page.evaluateOnNewDocument(initMocha, reporter);
await page.goto(`file://${url}`);
await page.waitForFunction(() => window.testsCompleted);
await page.waitForFunction(() => window.testsCompleted, { timeout: 60000 });
process.stdout.write('\n');
browser.close();
//log.forEach(msg => console.log(`${msg.json} = ${msg.del} == ${msg.begin}`));
} catch (err) {

@@ -85,0 +97,0 @@ console.log(err);

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