UNPKG

morning-builds-core

Version:

Core functionality for Morning Builds

43 lines 2.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var BluebirdPromise = require("bluebird"); var fail_categories_1 = require("../fail-categories"); var flaky_issues_1 = require("./flaky-issues"); var MAX_FAILING_TESTS = 10; var FailingTests = /** @class */ (function () { function FailingTests(clients) { this.bambooClient = clients.bamboo; this.flakyIssues = new flaky_issues_1.FlakyIssues(clients); } FailingTests.prototype.assembleBuildsWithFailingTests = function (builds) { var _this = this; // Just deal with builds that have 5 failing tests or more. This will prevent the execution from // making too many requests to Jira in case of builds that have hundreds of failing tests, which // usually indicates problems other than in the tests themselves return BluebirdPromise.map(builds.filter(function (b) { return b.failedTestCount && b.failedTestCount <= MAX_FAILING_TESTS; }), function (build) { // Will resolve a list of jobs containing a list of failingTests along // with the associated Jira issue return BluebirdPromise.map(build.jobs, function (job) { // Will resolve a list of failingTests along with the // associated Jira issue return BluebirdPromise.map(_this.bambooClient.fetchFailingTests({ jobKey: job.jobKey, resultNumber: build.resultNumber }), function (failingTest) { return _this.flakyIssues.fetchFlakyIssue(failingTest) .then(function (issue) { return ({ test: failingTest, issue: issue }); }); }); }) .then(function (failingTests) { return ({ build: build, failingTests: [].concat.apply([], failingTests), failReason: fail_categories_1.categories.failingTest, failDetails: [].concat.apply([], failingTests).map(function (t) { return t.test.methodName; }), }); }); }); }; ; return FailingTests; }()); exports.FailingTests = FailingTests; //# sourceMappingURL=failing-tests.js.map