New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

karma-json-result-reporter

Package Overview
Dependencies
Maintainers
3
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

karma-json-result-reporter - npm Package Compare versions

Comparing version 0.5.0 to 0.6.0

33

index.js

@@ -0,14 +1,26 @@

var path = require('path');
var fs = require('fs');
var writeFile = require('writefile');
var converter = require('./resultConverter');
var log = console.log.bind(console, "JsonResultReporter:");
function writeOutput(config, output, helper, logger) {
function writeOutput(config, output) {
var log = logger.create('karma-json-result-reporter');
if (config.outputFile) {
writeFile(config.outputFile, JSON.stringify(output, null, 4), function(err) {
if (err) {
log(err);
helper.mkdirIfNotExists(path.dirname(config.outputFile), function() {
if (config.isSynchronous) {
log.debug('Writing test results to JSON file ' + config.outputFile);
try {
fs.writeFileSync(config.outputFile, JSON.stringify(output, null, 4));
} catch (err) {
log.warn('Cannot write test results to JSON file\n\t' + err.message);
}
} else {
log("JSON file was written to " + config.outputFile);
fs.writeFile(config.outputFile, JSON.stringify(output, null, 4), function(err) {
if (err) {
log.warn('Cannot write test results to JSON file\n\t' + err.message);
} else {
log.debug('Test results were written to JSON file ' + config.outputFile);
}
});
}

@@ -21,3 +33,4 @@ });

var JsonResultReporter = function(baseReporterDecorator, formatError, config) {
var JsonResultReporter = function(baseReporterDecorator, formatError, config, helper, logger) {
baseReporterDecorator(this);

@@ -50,3 +63,3 @@

}
writeOutput(config, output);
writeOutput(config, output, helper, logger);

@@ -59,3 +72,3 @@ this.clear();

JsonResultReporter.$inject = ['baseReporterDecorator', 'formatError', 'config.jsonResultReporter'];
JsonResultReporter.$inject = ['baseReporterDecorator', 'formatError', 'config.jsonResultReporter', 'helper', 'logger'];

@@ -62,0 +75,0 @@ module.exports = {

{
"name": "karma-json-result-reporter",
"version": "0.5.0",
"version": "0.6.0",
"description": "test results as json file",

@@ -25,8 +25,8 @@ "main": "index.js",

"del": "^2.2.1",
"jasmine": "^2.4.1"
"jasmine": "^2.4.1",
"mkdirp": "^0.5.1"
},
"dependencies": {
"fun-map": "^3.3.1",
"writefile": "^0.2.8"
"fun-map": "^3.3.1"
}
}

@@ -74,3 +74,4 @@ # Karma JSON result reporter

jsonResultReporter: {
outputFile: "karma-result.json"
outputFile: "karma-result.json",
isSynchronous: true (optional, default false)
}

@@ -77,0 +78,0 @@ ```

const os = require('os');
const fs = require('fs');
const mkdirp = require('mkdirp');
const del = require('del');

@@ -26,2 +27,14 @@

});
this.helper = jasmine.createSpyObj('helper', ['mkdirIfNotExists']);
this.helper.mkdirIfNotExists.and.callFake(function(dirStr, callback) {
if (!fs.existsSync(dirStr)) {
mkdirp.sync(dirStr);
}
callback();
});
var log = jasmine.createSpyObj('log', ['debug', 'warn']);
this.logger = jasmine.createSpyObj('logger', ['create']);
this.logger.create.and.returnValue(log);
});

@@ -33,3 +46,3 @@

var reporter = new JsonResultReporter(this.baseReporterDecorator, this.formatError, config);
var reporter = new JsonResultReporter(this.baseReporterDecorator, this.formatError, config, this.helper, this.logger);

@@ -71,3 +84,3 @@ expect(reporter).toEqual(jasmine.any(Object));

var reporter = new JsonResultReporter(this.baseReporterDecorator, this.formatError, config);
var reporter = new JsonResultReporter(this.baseReporterDecorator, this.formatError, config, this.helper, this.logger);
reporter.onBrowserError('test', ERROR_TEXT);

@@ -84,3 +97,3 @@ reporter.onRunComplete();

var reporter = new JsonResultReporter(this.baseReporterDecorator, this.formatError, config);
var reporter = new JsonResultReporter(this.baseReporterDecorator, this.formatError, config, this.helper, this.logger);
reporter.onBrowserError('test', ERROR_TEXT);

@@ -92,16 +105,20 @@ reporter.onRunComplete();

it('should write results synchronously, if isSynchronous is set', function(done) {
var config = {
outputFile: this.tempTestDir + '/my/nested/path/report-file.json',
isSynchronous: true
};
var reporter = new JsonResultReporter(this.baseReporterDecorator, this.formatError, config, this.helper, this.logger);
reporter.onBrowserError('test', ERROR_TEXT);
reporter.onRunComplete();
if (!checkFileAndContentSynchronously(config.outputFile, done)) {
done.fail('Results does not exists - ' + config.outputFile);
}
});
function waitForFileAndCheckContent(outputFile, done) {
setImmediate(function() {
if (fs.existsSync(outputFile)) {
fs.readFile(outputFile, function(err, result) {
if (err) {
done.fail('Read file error - ' + outputFile + ': ' + err);
return;
}
expect(result.toString()).toMatch(ERROR_TEXT);
done();
});
} else {
if (!checkFileAndContentSynchronously(outputFile, done)) {
waitForFileAndCheckContent(outputFile, done);

@@ -111,4 +128,23 @@ }

}
function checkFileAndContentSynchronously(outputFile, done) {
if (fs.existsSync(outputFile)) {
fs.readFile(outputFile, function(err, result) {
if (err) {
done.fail('Read file error - ' + outputFile + ': ' + err);
return;
}
expect(result.toString()).toMatch(ERROR_TEXT);
done();
});
return true;
} else {
return false;
}
}
});
})
});
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