UNPKG

stryker

Version:
86 lines 3.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var path = require("path"); var fileUtils_1 = require("../utils/fileUtils"); var util_1 = require("@stryker-mutator/util"); var plugin_1 = require("stryker-api/plugin"); var DEFAULT_BASE_FOLDER = 'reports/mutation/events'; var EventRecorderReporter = /** @class */ (function () { function EventRecorderReporter(log, options) { this.log = log; this.options = options; this.allWork = []; this.index = 0; this.createBaseFolderTask = fileUtils_1.cleanFolder(this.baseFolder); } Object.defineProperty(EventRecorderReporter.prototype, "baseFolder", { get: function () { if (!this._baseFolder) { if (this.options.eventReporter && this.options.eventReporter.baseDir) { this._baseFolder = this.options.eventReporter.baseDir; this.log.debug("Using configured output folder " + this._baseFolder); } else { this.log.debug("No base folder configuration found (using configuration: eventReporter: { baseDir: 'output/folder' }), using default " + DEFAULT_BASE_FOLDER); this._baseFolder = DEFAULT_BASE_FOLDER; } } return this._baseFolder; }, enumerable: true, configurable: true }); EventRecorderReporter.prototype.writeToFile = function (methodName, data) { var filename = path.join(this.baseFolder, this.format(this.index++) + "-" + methodName + ".json"); this.log.debug("Writing event " + methodName + " to file " + filename); return util_1.fsAsPromised.writeFile(filename, JSON.stringify(data), { encoding: 'utf8' }); }; EventRecorderReporter.prototype.format = function (input) { var str = input.toString(); for (var i = 10000; i > 1; i = i / 10) { if (i > input) { str = '0' + str; } } return str; }; EventRecorderReporter.prototype.work = function (eventName, data) { var _this = this; this.allWork.push(this.createBaseFolderTask.then(function () { return _this.writeToFile(eventName, data); })); }; EventRecorderReporter.prototype.onSourceFileRead = function (file) { this.work('onSourceFileRead', file); }; EventRecorderReporter.prototype.onAllSourceFilesRead = function (files) { this.work('onAllSourceFilesRead', files); }; EventRecorderReporter.prototype.onAllMutantsMatchedWithTests = function (results) { this.work('onAllMutantsMatchedWithTests', results); }; EventRecorderReporter.prototype.onMutantTested = function (result) { this.work('onMutantTested', result); }; EventRecorderReporter.prototype.onScoreCalculated = function (score) { this.work('onScoreCalculated', score); }; EventRecorderReporter.prototype.onAllMutantsTested = function (results) { this.work('onAllMutantsTested', results); }; EventRecorderReporter.prototype.wrapUp = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.createBaseFolderTask]; case 1: _a.sent(); return [2 /*return*/, Promise.all(this.allWork)]; } }); }); }; EventRecorderReporter.inject = plugin_1.tokens(plugin_1.commonTokens.logger, plugin_1.commonTokens.options); return EventRecorderReporter; }()); exports.default = EventRecorderReporter; //# sourceMappingURL=EventRecorderReporter.js.map