aboutsummaryrefslogtreecommitdiffstats
path: root/vnfmarket/src/main/webapp/vnfmarket/node_modules/istanbul/lib/report/text-summary.js
diff options
context:
space:
mode:
Diffstat (limited to 'vnfmarket/src/main/webapp/vnfmarket/node_modules/istanbul/lib/report/text-summary.js')
-rw-r--r--vnfmarket/src/main/webapp/vnfmarket/node_modules/istanbul/lib/report/text-summary.js93
1 files changed, 93 insertions, 0 deletions
diff --git a/vnfmarket/src/main/webapp/vnfmarket/node_modules/istanbul/lib/report/text-summary.js b/vnfmarket/src/main/webapp/vnfmarket/node_modules/istanbul/lib/report/text-summary.js
new file mode 100644
index 00000000..9537cbe2
--- /dev/null
+++ b/vnfmarket/src/main/webapp/vnfmarket/node_modules/istanbul/lib/report/text-summary.js
@@ -0,0 +1,93 @@
+/*
+ Copyright (c) 2012, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
+ */
+
+var path = require('path'),
+ util = require('util'),
+ mkdirp = require('mkdirp'),
+ defaults = require('./common/defaults'),
+ fs = require('fs'),
+ utils = require('../object-utils'),
+ Report = require('./index');
+
+/**
+ * a `Report` implementation that produces text output for overall coverage in summary format.
+ *
+ * Usage
+ * -----
+ *
+ * var report = require('istanbul').Report.create('text-summary');
+ *
+ * @class TextSummaryReport
+ * @extends Report
+ * @module report
+ * @constructor
+ * @param {Object} opts optional
+ * @param {String} [opts.dir] the directory in which to the text coverage report will be written, when writing to a file
+ * @param {String} [opts.file] the filename for the report. When omitted, the report is written to console
+ */
+function TextSummaryReport(opts) {
+ Report.call(this);
+ opts = opts || {};
+ this.dir = opts.dir || process.cwd();
+ this.file = opts.file;
+ this.watermarks = opts.watermarks || defaults.watermarks();
+}
+
+TextSummaryReport.TYPE = 'text-summary';
+util.inherits(TextSummaryReport, Report);
+
+function lineForKey(summary, key, watermarks) {
+ var metrics = summary[key],
+ skipped,
+ result,
+ clazz = defaults.classFor(key, summary, watermarks);
+ key = key.substring(0, 1).toUpperCase() + key.substring(1);
+ if (key.length < 12) { key += ' '.substring(0, 12 - key.length); }
+ result = [ key , ':', metrics.pct + '%', '(', metrics.covered + '/' + metrics.total, ')'].join(' ');
+ skipped = metrics.skipped;
+ if (skipped > 0) {
+ result += ', ' + skipped + ' ignored';
+ }
+ return defaults.colorize(result, clazz);
+}
+
+Report.mix(TextSummaryReport, {
+ synopsis: function () {
+ return 'text report that prints a coverage summary across all files, typically to console';
+ },
+ getDefaultConfig: function () {
+ return { file: null };
+ },
+ writeReport: function (collector /*, sync */) {
+ var summaries = [],
+ finalSummary,
+ lines = [],
+ watermarks = this.watermarks,
+ text;
+ collector.files().forEach(function (file) {
+ summaries.push(utils.summarizeFileCoverage(collector.fileCoverageFor(file)));
+ });
+ finalSummary = utils.mergeSummaryObjects.apply(null, summaries);
+ lines.push('');
+ lines.push('=============================== Coverage summary ===============================');
+ lines.push.apply(lines, [
+ lineForKey(finalSummary, 'statements', watermarks),
+ lineForKey(finalSummary, 'branches', watermarks),
+ lineForKey(finalSummary, 'functions', watermarks),
+ lineForKey(finalSummary, 'lines', watermarks)
+ ]);
+ lines.push('================================================================================');
+ text = lines.join('\n');
+ if (this.file) {
+ mkdirp.sync(this.dir);
+ fs.writeFileSync(path.join(this.dir, this.file), text, 'utf8');
+ } else {
+ console.log(text);
+ }
+ this.emit('done');
+ }
+});
+
+module.exports = TextSummaryReport;