@browserstack/testcafe
Version:
Automated browser testing for the modern web development stack.
29 lines • 4.61 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const runtime_1 = require("../errors/runtime");
const types_1 = require("../errors/types");
class ReporterStreamController {
constructor(task, reporters) {
this._pluginInfos = [];
this._task = task;
this.multipleStreamError = null;
reporters.forEach(({ plugin }) => {
plugin.streamController = this;
});
}
ensureUniqueStream(stream, plugin) {
const pluginInfo = this._pluginInfos.find(info => info.stream === stream);
if (!pluginInfo)
this._pluginInfos.push({ stream: stream, plugin: plugin });
else if (pluginInfo.plugin !== plugin) {
const message = [pluginInfo.plugin.name, plugin.name].join(', ');
this.multipleStreamError = new runtime_1.GeneralError(types_1.RUNTIME_ERRORS.multipleSameStreamReporters, message);
this._task.emit('done');
return false;
}
return true;
}
}
exports.default = ReporterStreamController;
module.exports = exports.default;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0ZXItc3RyZWFtLWNvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVubmVyL3JlcG9ydGVyLXN0cmVhbS1jb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsK0NBQWlEO0FBQ2pELDJDQUFpRDtBQWFqRCxNQUFNLHdCQUF3QjtJQUsxQixZQUFvQixJQUFrQixFQUFFLFNBQXFCO1FBQ3pELElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFFaEMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRTtZQUM3QixNQUFNLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLGtCQUFrQixDQUFFLE1BQWdCLEVBQUUsTUFBYztRQUN2RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLENBQUM7UUFFMUUsSUFBSSxDQUFDLFVBQVU7WUFDWCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7YUFDMUQsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLE1BQU0sRUFBRTtZQUNuQyxNQUFNLE9BQU8sR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFakUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksc0JBQVksQ0FBQyxzQkFBYyxDQUFDLDJCQUEyQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRWpHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRXhCLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKO0FBRUQsa0JBQWUsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdldmVudHMnO1xuaW1wb3J0IHsgV3JpdGFibGUgfSBmcm9tICdzdHJlYW0nO1xuaW1wb3J0IHsgR2VuZXJhbEVycm9yIH0gZnJvbSAnLi4vZXJyb3JzL3J1bnRpbWUnO1xuaW1wb3J0IHsgUlVOVElNRV9FUlJPUlMgfSBmcm9tICcuLi9lcnJvcnMvdHlwZXMnO1xuaW1wb3J0IFJlcG9ydGVyIGZyb20gJy4uL3JlcG9ydGVyJztcblxuaW50ZXJmYWNlIFBsdWdpbiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHN0cmVhbUNvbnRyb2xsZXI6IFJlcG9ydGVyU3RyZWFtQ29udHJvbGxlcjtcbn1cblxuaW50ZXJmYWNlIFBsdWdpbkluZm8ge1xuICAgIHN0cmVhbTogV3JpdGFibGU7XG4gICAgcGx1Z2luOiBQbHVnaW47XG59XG5cbmNsYXNzIFJlcG9ydGVyU3RyZWFtQ29udHJvbGxlciB7XG4gICAgcHVibGljIG11bHRpcGxlU3RyZWFtRXJyb3I6IEdlbmVyYWxFcnJvciB8IG51bGw7XG4gICAgcHJpdmF0ZSBfcGx1Z2luSW5mb3M6IFBsdWdpbkluZm9bXTtcbiAgICBwcml2YXRlIF90YXNrOiBFdmVudEVtaXR0ZXI7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKHRhc2s6IEV2ZW50RW1pdHRlciwgcmVwb3J0ZXJzOiBSZXBvcnRlcltdKSB7XG4gICAgICAgIHRoaXMuX3BsdWdpbkluZm9zID0gW107XG4gICAgICAgIHRoaXMuX3Rhc2sgPSB0YXNrO1xuICAgICAgICB0aGlzLm11bHRpcGxlU3RyZWFtRXJyb3IgPSBudWxsO1xuXG4gICAgICAgIHJlcG9ydGVycy5mb3JFYWNoKCh7IHBsdWdpbiB9KSA9PiB7XG4gICAgICAgICAgICBwbHVnaW4uc3RyZWFtQ29udHJvbGxlciA9IHRoaXM7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBlbnN1cmVVbmlxdWVTdHJlYW0gKHN0cmVhbTogV3JpdGFibGUsIHBsdWdpbjogUGx1Z2luKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHBsdWdpbkluZm8gPSB0aGlzLl9wbHVnaW5JbmZvcy5maW5kKGluZm8gPT4gaW5mby5zdHJlYW0gPT09IHN0cmVhbSk7XG5cbiAgICAgICAgaWYgKCFwbHVnaW5JbmZvKVxuICAgICAgICAgICAgdGhpcy5fcGx1Z2luSW5mb3MucHVzaCh7IHN0cmVhbTogc3RyZWFtLCBwbHVnaW46IHBsdWdpbiB9KTtcbiAgICAgICAgZWxzZSBpZiAocGx1Z2luSW5mby5wbHVnaW4gIT09IHBsdWdpbikge1xuICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IFtwbHVnaW5JbmZvLnBsdWdpbi5uYW1lLCBwbHVnaW4ubmFtZV0uam9pbignLCAnKTtcblxuICAgICAgICAgICAgdGhpcy5tdWx0aXBsZVN0cmVhbUVycm9yID0gbmV3IEdlbmVyYWxFcnJvcihSVU5USU1FX0VSUk9SUy5tdWx0aXBsZVNhbWVTdHJlYW1SZXBvcnRlcnMsIG1lc3NhZ2UpO1xuXG4gICAgICAgICAgICB0aGlzLl90YXNrLmVtaXQoJ2RvbmUnKTtcblxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBSZXBvcnRlclN0cmVhbUNvbnRyb2xsZXI7XG4iXX0=