stryker
Version:
The extendable JavaScript mutation testing framework
53 lines • 2.2 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var plugin_1 = require("stryker-api/plugin");
var di_1 = require("../di");
var MutatorFacade = /** @class */ (function () {
function MutatorFacade(options, pluginCreator, log) {
this.options = options;
this.pluginCreator = pluginCreator;
this.log = log;
}
MutatorFacade.prototype.mutate = function (inputFiles) {
var allMutants = this.pluginCreator.create(this.getMutatorName(this.options.mutator))
.mutate(inputFiles);
var includedMutants = this.removeExcludedMutants(allMutants);
this.logMutantCount(includedMutants.length, allMutants.length);
return includedMutants;
};
MutatorFacade.prototype.removeExcludedMutants = function (mutants) {
if (typeof this.options.mutator === 'string') {
return mutants;
}
else {
var mutatorDescriptor_1 = this.options.mutator;
return mutants.filter(function (mutant) { return mutatorDescriptor_1.excludedMutations.indexOf(mutant.mutatorName) === -1; });
}
};
MutatorFacade.prototype.getMutatorName = function (mutator) {
if (typeof mutator === 'string') {
return mutator;
}
else {
return mutator.name;
}
};
MutatorFacade.prototype.logMutantCount = function (includedMutantCount, totalMutantCount) {
var mutantCountMessage;
if (includedMutantCount) {
mutantCountMessage = includedMutantCount + " Mutant(s) generated";
}
else {
mutantCountMessage = "It's a mutant-free world, nothing to test.";
}
var numberExcluded = totalMutantCount - includedMutantCount;
if (numberExcluded) {
mutantCountMessage += " (" + numberExcluded + " Mutant(s) excluded)";
}
this.log.info(mutantCountMessage);
};
MutatorFacade.inject = plugin_1.tokens(plugin_1.commonTokens.options, di_1.coreTokens.pluginCreatorMutator, plugin_1.commonTokens.logger);
return MutatorFacade;
}());
exports.MutatorFacade = MutatorFacade;
//# sourceMappingURL=MutatorFacade.js.map
;