karma-edge-launcher
Advanced tools
Comparing version 0.1.2 to 0.2.0
@@ -0,1 +1,6 @@ | ||
<a name="0.2.0"></a> | ||
# [0.2.0](https://github.com/nickmccurdy/karma-edge-launcher/compare/v0.1.2...v0.2.0) (2016-12-14) | ||
<a name="0.1.2"></a> | ||
@@ -2,0 +7,0 @@ ## [0.1.2](https://github.com/nickmccurdy/karma-edge-launcher/compare/v0.1.1...v0.1.2) (2016-12-10) |
31
index.js
// Karma Edge Launcher | ||
// ================= | ||
// Dependencies | ||
// ------------ | ||
var exec = require('child_process').exec | ||
// Constructor | ||
function EdgeBrowser (baseBrowserDecorator) { | ||
function EdgeBrowser (baseBrowserDecorator, logger) { | ||
baseBrowserDecorator(this) | ||
var log = logger.create('launcher') | ||
function killEdgeProcess (cb) { | ||
exec('taskkill /t /f /im MicrosoftEdge.exe', function (err) { | ||
if (err) { | ||
log.error('Killing Edge process failed. ' + err) | ||
} else { | ||
log.debug('Killed Edge process') | ||
} | ||
cb() | ||
}) | ||
} | ||
this._getOptions = function (url) { | ||
return [url, '-k'] | ||
} | ||
var baseOnProcessExit = this._onProcessExit | ||
this._onProcessExit = function (code, errorOutput) { | ||
killEdgeProcess(function () { | ||
if (baseOnProcessExit) { | ||
baseOnProcessExit(code, errorOutput) | ||
} | ||
}) | ||
} | ||
} | ||
@@ -21,3 +48,3 @@ | ||
EdgeBrowser.$inject = ['baseBrowserDecorator'] | ||
EdgeBrowser.$inject = ['baseBrowserDecorator', 'logger'] | ||
@@ -24,0 +51,0 @@ // Publish di module |
{ | ||
"name": "karma-edge-launcher", | ||
"version": "0.1.2", | ||
"version": "0.2.0", | ||
"description": "A Karma plugin. Launcher for Microsoft Edge.", | ||
@@ -47,2 +47,3 @@ "main": "index.js", | ||
"os-homedir": "^1.0.1", | ||
"proxyquire": "^1.7.10", | ||
"sinon": "^1.14.1", | ||
@@ -64,4 +65,5 @@ "sinon-chai": "^2.8.0" | ||
"Marcos Cáceres <marcos+github@marcosc.com>", | ||
"Nikita Khomyakov <dr.evil@krtn.eu>" | ||
"Nikita Khomyakov <dr.evil@krtn.eu>", | ||
"harimambura <harimambura@gmail.com>" | ||
] | ||
} |
var di = require('di') | ||
var osHomedir = require('os-homedir') | ||
var proxyquire = require('proxyquire') | ||
@@ -92,2 +93,31 @@ describe('launcher', function () { | ||
}) | ||
describe('_onProcessExit', function () { | ||
var childProcessCmd, onProcessExit | ||
beforeEach(function () { | ||
onProcessExit = function () { | ||
var childProcessMock | ||
childProcessMock = { | ||
exec: function (cmd, cb) { | ||
childProcessCmd = cmd | ||
cb() | ||
} | ||
} | ||
EdgeLauncher = proxyquire('..', { | ||
child_process: childProcessMock | ||
}) | ||
injector = new di.Injector([module, EdgeLauncher]) | ||
launcher = injector.get('launcher:Edge') | ||
launcher._onProcessExit(1, 2) | ||
} | ||
}) | ||
it('should call taskkill', function (done) { | ||
onProcessExit() | ||
expect(childProcessCmd).to.equal('taskkill /t /f /im MicrosoftEdge.exe') | ||
done() | ||
}) | ||
}) | ||
}) |
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
12185
239
23
1