Stryker

IsolatedTestRunnerAdapterWorker.js - Stryker report

Summary

File
Mutation score
# Killed
# Survived
# Timeout
# No coverage
# Errors
Total detected
Total undetected
Total mutants
IsolatedTestRunnerAdapterWorker.js
0%
0/54 0 0 0 54 0 0 54 54

Code

"use strict";
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('IsolatedTestRunnerAdapterWorker');
var IsolatedTestRunnerAdapterWorker = (function () 0{
    function IsolatedTestRunnerAdapterWorker() 1{
        this.listenToMessages();
    }
    IsolatedTestRunnerAdapterWorker.prototype.listenToMessages = function () 2{
        var _this = this;
        process.on('message', function (serializedMessage) 3{
            var message = objectUtils_1.deserialize(serializedMessage);
            switch (message.kind) {
                case 'start':
                    _this.start(message);
                    break;
                case 'run':
                    _this.run(message);
                    break;
                case 'init':
                    _this.init();
                    break;
                case 'dispose':
                    _this.dispose();
                    break;
                default:
                    _this.logReceivedMessageWarning(message);
            }
        });
    };
    IsolatedTestRunnerAdapterWorker.prototype.logReceivedMessageWarning = function (message) 4{
        log.warn('Received unsupported message: {}', JSON.stringify(message));
    };
    IsolatedTestRunnerAdapterWorker.prototype.start = function (message) 5{
        this.loadPlugins(message.runnerOptions.strykerOptions.plugins);
        this.underlyingTestRunner = test_runner_1.TestRunnerFactory.instance().create(message.runnerName, message.runnerOptions);
    };
    IsolatedTestRunnerAdapterWorker.prototype.init = function () 6{
        var initPromise = void 0;
        if (78this.underlyingTestRunner.init) 9{
            initPromise = this.underlyingTestRunner.init();
        }
        if (1011objectUtils_1.isPromise(initPromise)) 12{
            initPromise.then(this.sendInitDone);
        }
        else 13{
            this.sendInitDone();
        }
    };
    IsolatedTestRunnerAdapterWorker.prototype.sendInitDone = function () 14{
        var message = { kind: 'initDone' };
        process.send(message);
    };
    IsolatedTestRunnerAdapterWorker.prototype.dispose = function () 15{
        var disposePromise = void 0;
        if (1617this.underlyingTestRunner.dispose) 18{
            disposePromise = this.underlyingTestRunner.dispose();
        }
        if (1920objectUtils_1.isPromise(disposePromise)) 21{
            disposePromise.then(this.sendDisposeDone);
        }
        else 22{
            this.sendDisposeDone();
        }
    };
    IsolatedTestRunnerAdapterWorker.prototype.sendDisposeDone = function () 23{
        this.send({ kind: 'disposeDone' });
    };
    IsolatedTestRunnerAdapterWorker.prototype.run = function (body) 24{
        var _this = this;
        this.underlyingTestRunner.run(body.runOptions).then(function (res) 25{ return _this.reportResult(res); }, function (error) 26{ return _this.reportErrorResult(error); });
    };
    IsolatedTestRunnerAdapterWorker.prototype.send = function (message) 27{
        process.send(message);
    };
    IsolatedTestRunnerAdapterWorker.prototype.loadPlugins = function (plugins) 28{
        new PluginLoader_1.default(plugins).load();
    };
    IsolatedTestRunnerAdapterWorker.prototype.reportResult = function (result) 29{
        // If the test runner didn't report on coverage, let's try to do it ourselves.
        if (3031!result.coverage) 32{
            result.coverage = (Function('return this'))().__coverage__;
        }
        if (3334result.errorMessages) 35{
            // errorMessages should be a string[]
            // Just in case the test runner implementer forgot to convert `Error`s to string, we will do it here
            // https://github.com/stryker-mutator/stryker/issues/141
            result.errorMessages = result.errorMessages.map(function (error) 36{
                if (3738error instanceof Error) 39{
                    return 40414243error.name + ": " + error.message + "\n" + error.stack.toString();
                }
                else 44{
                    return error.toString();
                }
            });
        }
        this.send({
            kind: 'result',
            result: result
        });
    };
    IsolatedTestRunnerAdapterWorker.prototype.reportErrorResult = function (error) 45{
        var runResult = {
            tests: [],
            status: test_runner_1.RunStatus.Error,
        };
        if (4647error) 48{
            if (4950Array.isArray(error)) 51{
                runResult.errorMessages = error.map(function (e) 52{ return e; });
            }
            else 53{
                runResult.errorMessages = [error];
            }
        }
        this.reportResult(runResult);
    };
    return IsolatedTestRunnerAdapterWorker;
}());
new IsolatedTestRunnerAdapterWorker();
//# sourceMappingURL=IsolatedTestRunnerAdapterWorker.js.map