Stryker

IsolatedTestRunnerAdapterWorker.js - Stryker report

Summary

File Based on all code Based on code coverage
IsolatedTestRunnerAdapterWorker.js
81%
22/27 81% 22/27

Code

"use strict";
var Message_1 = require('./Message');
var test_runner_1 = require('stryker-api/test_runner');
var PluginLoader_1 = require('../PluginLoader');
var log4js = require('log4js');
var objectUtils_1 = require('../utils/objectUtils');
var log = log4js.getLogger('TestRunnerChildProcessAdapterWorker');
var TestRunnerChildProcessAdapterWorker = (function () 0{
    function TestRunnerChildProcessAdapterWorker() 1{
        this.listenToMessages();
    }

    TestRunnerChildProcessAdapterWorker.prototype.listenToMessages = function () 2{
        var _this = this;
        process.on('message', function (message) 3{
            switch (message.type) {
                case Message_1.MessageType.Start:
                    _this.start(message.body);
                    break;
                case Message_1.MessageType.Run:
                    _this.run(message.body);
                    break;
                case Message_1.MessageType.Init:
                    _this.init();
                    break;
                case Message_1.MessageType.Dispose:
                    _this.dispose();
                    break;
                default:
                    log.warn('Received unsupported message: {}', JSON.stringify(message));
            }
        });
    };
    TestRunnerChildProcessAdapterWorker.prototype.start = function (body) 4{
        this.loadPlugins(body.runnerOptions.strykerOptions.plugins);
        this.underlyingTestRunner = test_runner_1.TestRunnerFactory.instance().create(body.runnerName, body.runnerOptions);
    };
    TestRunnerChildProcessAdapterWorker.prototype.init = function () 5{
        var initPromise = void 0;
        if (67this.underlyingTestRunner.init) 8{
            initPromise = this.underlyingTestRunner.init();
        }

        if (910objectUtils_1.isPromise(initPromise)) 11{
            initPromise.then(this.sendInitDone);
        }

        else 12{
            this.sendInitDone();
        }

    };
    TestRunnerChildProcessAdapterWorker.prototype.sendInitDone = function () 13{
        process.send({ type: Message_1.MessageType.InitDone });
    };
    TestRunnerChildProcessAdapterWorker.prototype.dispose = function () 14{
        var disposePromise = void 0;
        if (1516this.underlyingTestRunner.dispose) 17{
            disposePromise = this.underlyingTestRunner.dispose();
        }

        if (1819objectUtils_1.isPromise(disposePromise)) 20{
            disposePromise.then(this.sendDisposeDone);
        }

        else 21{
            this.sendDisposeDone();
        }

    };
    TestRunnerChildProcessAdapterWorker.prototype.sendDisposeDone = function () 22{
        process.send({ type: Message_1.MessageType.DisposeDone });
    };
    TestRunnerChildProcessAdapterWorker.prototype.run = function (body) 23{
        this.underlyingTestRunner.run(body.runOptions).then(this.reportResult, this.reportErrorResult);
    };
    TestRunnerChildProcessAdapterWorker.prototype.loadPlugins = function (plugins) 24{
        new PluginLoader_1.default(plugins).load();
    };
    TestRunnerChildProcessAdapterWorker.prototype.reportResult = function (result) 25{
        var message = {
            type: Message_1.MessageType.Result,
            body: { result: result }
        };
        process.send(message);
    };
    TestRunnerChildProcessAdapterWorker.prototype.reportErrorResult = function (error) 26{
        var message = {
            type: Message_1.MessageType.Result,
            body: {
                result: {
                    testNames: [],
                    result: test_runner_1.TestResult.Error,
                }
            }
        };
        process.send(message);
    };
    return TestRunnerChildProcessAdapterWorker;
}());
new TestRunnerChildProcessAdapterWorker();
//# sourceMappingURL=IsolatedTestRunnerAdapterWorker.js.map