morning-builds-core
Version:
Core functionality for Morning Builds
43 lines • 2.24 kB
JavaScript
;
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