Stryker

TestSelectorOrchestrator.js - Stryker report

Summary

File Based on all code Based on code coverage
TestSelectorOrchestrator.js
100%
57/57 100% 57/57

Code

"use strict";
var test_selector_1 = require('stryker-api/test_selector');
var log4js = require('log4js');
var WARNING_RUNNING_WITHOUT_SELECTOR = 'Stryker will continue without the ability to select individual tests, thus running all test for every generated mutant.';
var IGNORE_WARNING = 'Set `testSelector` option explicitly to `null` to ignore this warning.';
var log = log4js.getLogger('TestSelectorOrchestrator');
var TestSelectorOrchestrator = (function () 0{
    function TestSelectorOrchestrator(options) 1{
        this.options = options;
    }
    TestSelectorOrchestrator.prototype.determineTestSelector = function () 2{
        var testSelector = null;
        if (345this.options.testSelector && 6this.options.testSelector !== 'null') 7{
            testSelector = this.determineTestSelectorBasedOnTestSelectorSetting();
        }
        else if (891011this.options.testSelector === null || 12this.options.testSelector === 'null') 13{
            log.debug('Running without testSelector (testSelector was null).');
        }
        else 14{
            if (1516this.options.testFramework) 17{
                testSelector = this.determineTestSelectorBasedOnTestFrameworkSetting();
            }
            else 18{
                log.warn(192021"Missing config settings `testFramework` or `testSelector`. " + WARNING_RUNNING_WITHOUT_SELECTOR + " " + IGNORE_WARNING);
            }
        }
        return testSelector;
    };
    TestSelectorOrchestrator.prototype.determineTestSelectorBasedOnTestSelectorSetting = function () 22{
        if (2324this.testSelectorExists(this.options.testSelector)) 25{
            log.debug(2627"Using testSelector " + this.options.testSelector + " based on `testSelector` setting");
            return this.createTestSelector(this.options.testSelector);
        }
        else 28{
            log.warn(2930313233"Could not find test selector `" + this.options.testSelector + "`. " + WARNING_RUNNING_WITHOUT_SELECTOR + " " + this.informAboutKnownTestSelectors());
            return null;
        }
    };
    TestSelectorOrchestrator.prototype.determineTestSelectorBasedOnTestFrameworkSetting = function () 34{
        if (3536this.testSelectorExists(this.options.testFramework)) 37{
            log.debug(3839"Using testSelector " + this.options.testFramework + " based on `testFramework` setting");
            return this.createTestSelector(this.options.testFramework);
        }
        else 40{
            log.warn(41424344454647"Could not find test selector `" + this.options.testFramework + "` (based on the configured testFramework). " + WARNING_RUNNING_WITHOUT_SELECTOR + " " + IGNORE_WARNING + " " + this.informAboutKnownTestSelectors());
            return null;
        }
    };
    TestSelectorOrchestrator.prototype.informAboutKnownTestSelectors = function () 48{
        return 4950"Did you forget to load a plugin? Known test selectors: " + JSON.stringify(test_selector_1.TestSelectorFactory.instance().knownNames()) + ".";
    };
    TestSelectorOrchestrator.prototype.createTestSelector = function (name) 51{
        return test_selector_1.TestSelectorFactory.instance().create(name, this.createSettings());
    };
    TestSelectorOrchestrator.prototype.testSelectorExists = function (maybeSelector) 52{
        return 5354test_selector_1.TestSelectorFactory.instance().knownNames().indexOf(maybeSelector) > 55-1;
    };
    TestSelectorOrchestrator.prototype.createSettings = function () 56{
        return { options: this.options };
    };
    return TestSelectorOrchestrator;
}());
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = TestSelectorOrchestrator;
//# sourceMappingURL=TestSelectorOrchestrator.js.map