azure-devops-mcp

by RyanCardin15
Verified
"use strict"; /* * --------------------------------------------------------- * Copyright(C) Microsoft Corporation. All rights reserved. * --------------------------------------------------------- * * --------------------------------------------------------- * Generated file, DO NOT EDIT * --------------------------------------------------------- */ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TestResultsApi = void 0; const basem = require("./ClientApiBases"); const Contracts = require("./interfaces/TestInterfaces"); class TestResultsApi extends basem.ClientApiBase { constructor(baseUrl, handlers, options) { super(baseUrl, handlers, 'node-testResults-api', options); } /** * @param {Contracts.TestAttachmentRequestModel} attachmentRequestModel * @param {string} project - Project ID or project name * @param {number} runId * @param {number} testCaseResultId * @param {number} iterationId * @param {string} actionPath */ createTestIterationResultAttachment(attachmentRequestModel, project, runId, testCaseResultId, iterationId, actionPath) { return __awaiter(this, void 0, void 0, function* () { if (iterationId == null) { throw new TypeError('iterationId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId, testCaseResultId: testCaseResultId }; let queryValues = { iterationId: iterationId, actionPath: actionPath, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "2a632e97-e014-4275-978f-8e5c4906d4b3", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, attachmentRequestModel, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {Contracts.TestAttachmentRequestModel} attachmentRequestModel * @param {string} project - Project ID or project name * @param {number} runId * @param {number} testCaseResultId */ createTestResultAttachment(attachmentRequestModel, project, runId, testCaseResultId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId, testCaseResultId: testCaseResultId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "2a632e97-e014-4275-978f-8e5c4906d4b3", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, attachmentRequestModel, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {Contracts.TestAttachmentRequestModel} attachmentRequestModel * @param {string} project - Project ID or project name * @param {number} runId * @param {number} testCaseResultId * @param {number} testSubResultId */ createTestSubResultAttachment(attachmentRequestModel, project, runId, testCaseResultId, testSubResultId) { return __awaiter(this, void 0, void 0, function* () { if (testSubResultId == null) { throw new TypeError('testSubResultId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId, testCaseResultId: testCaseResultId }; let queryValues = { testSubResultId: testSubResultId, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "2a632e97-e014-4275-978f-8e5c4906d4b3", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, attachmentRequestModel, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {number} runId * @param {number} testCaseResultId * @param {number} attachmentId */ deleteTestResultAttachment(project, runId, testCaseResultId, attachmentId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId, testCaseResultId: testCaseResultId, attachmentId: attachmentId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "2a632e97-e014-4275-978f-8e5c4906d4b3", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.del(url, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Returns a test iteration attachment * * @param {string} project - Project ID or project name * @param {number} runId * @param {number} testCaseResultId * @param {number} attachmentId * @param {number} iterationId */ getTestIterationAttachmentContent(project, runId, testCaseResultId, attachmentId, iterationId) { return __awaiter(this, void 0, void 0, function* () { if (iterationId == null) { throw new TypeError('iterationId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId, testCaseResultId: testCaseResultId, attachmentId: attachmentId }; let queryValues = { iterationId: iterationId, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "2a632e97-e014-4275-978f-8e5c4906d4b3", routeValues, queryValues); let url = verData.requestUrl; let apiVersion = verData.apiVersion; let accept = this.createAcceptHeader("application/octet-stream", apiVersion); resolve((yield this.http.get(url, { "Accept": accept })).message); } catch (err) { reject(err); } })); }); } /** * Returns a test iteration attachment * * @param {string} project - Project ID or project name * @param {number} runId * @param {number} testCaseResultId * @param {number} attachmentId * @param {number} iterationId */ getTestIterationAttachmentZip(project, runId, testCaseResultId, attachmentId, iterationId) { return __awaiter(this, void 0, void 0, function* () { if (iterationId == null) { throw new TypeError('iterationId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId, testCaseResultId: testCaseResultId, attachmentId: attachmentId }; let queryValues = { iterationId: iterationId, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "2a632e97-e014-4275-978f-8e5c4906d4b3", routeValues, queryValues); let url = verData.requestUrl; let apiVersion = verData.apiVersion; let accept = this.createAcceptHeader("application/zip", apiVersion); resolve((yield this.http.get(url, { "Accept": accept })).message); } catch (err) { reject(err); } })); }); } /** * Returns a test result attachment * * @param {string} project - Project ID or project name * @param {number} runId * @param {number} testCaseResultId * @param {number} attachmentId */ getTestResultAttachmentContent(project, runId, testCaseResultId, attachmentId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId, testCaseResultId: testCaseResultId, attachmentId: attachmentId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "2a632e97-e014-4275-978f-8e5c4906d4b3", routeValues); let url = verData.requestUrl; let apiVersion = verData.apiVersion; let accept = this.createAcceptHeader("application/octet-stream", apiVersion); resolve((yield this.http.get(url, { "Accept": accept })).message); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {number} runId * @param {number} testCaseResultId */ getTestResultAttachments(project, runId, testCaseResultId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId, testCaseResultId: testCaseResultId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "2a632e97-e014-4275-978f-8e5c4906d4b3", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestAttachment, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Returns a test result attachment * * @param {string} project - Project ID or project name * @param {number} runId * @param {number} testCaseResultId * @param {number} attachmentId */ getTestResultAttachmentZip(project, runId, testCaseResultId, attachmentId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId, testCaseResultId: testCaseResultId, attachmentId: attachmentId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "2a632e97-e014-4275-978f-8e5c4906d4b3", routeValues); let url = verData.requestUrl; let apiVersion = verData.apiVersion; let accept = this.createAcceptHeader("application/zip", apiVersion); resolve((yield this.http.get(url, { "Accept": accept })).message); } catch (err) { reject(err); } })); }); } /** * Returns a test sub result attachment * * @param {string} project - Project ID or project name * @param {number} runId * @param {number} testCaseResultId * @param {number} attachmentId * @param {number} testSubResultId */ getTestSubResultAttachmentContent(project, runId, testCaseResultId, attachmentId, testSubResultId) { return __awaiter(this, void 0, void 0, function* () { if (testSubResultId == null) { throw new TypeError('testSubResultId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId, testCaseResultId: testCaseResultId, attachmentId: attachmentId }; let queryValues = { testSubResultId: testSubResultId, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "2a632e97-e014-4275-978f-8e5c4906d4b3", routeValues, queryValues); let url = verData.requestUrl; let apiVersion = verData.apiVersion; let accept = this.createAcceptHeader("application/octet-stream", apiVersion); resolve((yield this.http.get(url, { "Accept": accept })).message); } catch (err) { reject(err); } })); }); } /** * Returns attachment references for test sub result. * * @param {string} project - Project ID or project name * @param {number} runId * @param {number} testCaseResultId * @param {number} testSubResultId */ getTestSubResultAttachments(project, runId, testCaseResultId, testSubResultId) { return __awaiter(this, void 0, void 0, function* () { if (testSubResultId == null) { throw new TypeError('testSubResultId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId, testCaseResultId: testCaseResultId }; let queryValues = { testSubResultId: testSubResultId, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "2a632e97-e014-4275-978f-8e5c4906d4b3", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestAttachment, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Returns a test sub result attachment * * @param {string} project - Project ID or project name * @param {number} runId * @param {number} testCaseResultId * @param {number} attachmentId * @param {number} testSubResultId */ getTestSubResultAttachmentZip(project, runId, testCaseResultId, attachmentId, testSubResultId) { return __awaiter(this, void 0, void 0, function* () { if (testSubResultId == null) { throw new TypeError('testSubResultId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId, testCaseResultId: testCaseResultId, attachmentId: attachmentId }; let queryValues = { testSubResultId: testSubResultId, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "2a632e97-e014-4275-978f-8e5c4906d4b3", routeValues, queryValues); let url = verData.requestUrl; let apiVersion = verData.apiVersion; let accept = this.createAcceptHeader("application/zip", apiVersion); resolve((yield this.http.get(url, { "Accept": accept })).message); } catch (err) { reject(err); } })); }); } /** * @param {Contracts.TestAttachmentRequestModel} attachmentRequestModel * @param {string} project - Project ID or project name * @param {number} runId */ createTestRunAttachment(attachmentRequestModel, project, runId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "b5731898-8206-477a-a51d-3fdf116fc6bf", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, attachmentRequestModel, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {number} runId * @param {number} attachmentId */ deleteTestRunAttachment(project, runId, attachmentId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId, attachmentId: attachmentId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "b5731898-8206-477a-a51d-3fdf116fc6bf", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.del(url, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Returns a test run attachment * * @param {string} project - Project ID or project name * @param {number} runId * @param {number} attachmentId */ getTestRunAttachmentContent(project, runId, attachmentId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId, attachmentId: attachmentId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "b5731898-8206-477a-a51d-3fdf116fc6bf", routeValues); let url = verData.requestUrl; let apiVersion = verData.apiVersion; let accept = this.createAcceptHeader("application/octet-stream", apiVersion); resolve((yield this.http.get(url, { "Accept": accept })).message); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {number} runId */ getTestRunAttachments(project, runId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "b5731898-8206-477a-a51d-3fdf116fc6bf", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestAttachment, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Returns a test run attachment * * @param {string} project - Project ID or project name * @param {number} runId * @param {number} attachmentId */ getTestRunAttachmentZip(project, runId, attachmentId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId, attachmentId: attachmentId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "b5731898-8206-477a-a51d-3fdf116fc6bf", routeValues); let url = verData.requestUrl; let apiVersion = verData.apiVersion; let accept = this.createAcceptHeader("application/zip", apiVersion); resolve((yield this.http.get(url, { "Accept": accept })).message); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {number} runId * @param {number} testCaseResultId */ getBugsLinkedToTestResult(project, runId, testCaseResultId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId, testCaseResultId: testCaseResultId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "d8dbf98f-eb34-4f8d-8365-47972af34f29", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, null, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {number} buildId */ fetchSourceCodeCoverageReport(project, buildId) { return __awaiter(this, void 0, void 0, function* () { if (buildId == null) { throw new TypeError('buildId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { buildId: buildId, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "a459e10b-d703-4193-b3c1-60f2287918b3", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.SourceViewBuildCoverage, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {number} buildId * @param {number} flags */ getBuildCodeCoverage(project, buildId, flags) { return __awaiter(this, void 0, void 0, function* () { if (buildId == null) { throw new TypeError('buildId can not be null or undefined'); } if (flags == null) { throw new TypeError('flags can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { buildId: buildId, flags: flags, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "9b3e1ece-c6ab-4fbb-8167-8a32a0c92216", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.BuildCoverage, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * http://(tfsserver):8080/tfs/DefaultCollection/_apis/test/CodeCoverage?buildId=10&deltaBuildId=9 Request: build id and delta build id (optional) * * @param {string} project - Project ID or project name * @param {number} buildId * @param {number} deltaBuildId */ getCodeCoverageSummary(project, buildId, deltaBuildId) { return __awaiter(this, void 0, void 0, function* () { if (buildId == null) { throw new TypeError('buildId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { buildId: buildId, deltaBuildId: deltaBuildId, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "9b3e1ece-c6ab-4fbb-8167-8a32a0c92216", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.CodeCoverageSummary, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * http://(tfsserver):8080/tfs/DefaultCollection/_apis/test/CodeCoverage?buildId=10 Request: Json of code coverage summary * * @param {string} project - Project ID or project name * @param {number} buildId * @param {Contracts.CodeCoverageData} coverageData */ updateCodeCoverageSummary(project, buildId, coverageData) { return __awaiter(this, void 0, void 0, function* () { if (buildId == null) { throw new TypeError('buildId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { buildId: buildId, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "9b3e1ece-c6ab-4fbb-8167-8a32a0c92216", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, coverageData, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {number} runId * @param {number} flags */ getTestRunCodeCoverage(project, runId, flags) { return __awaiter(this, void 0, void 0, function* () { if (flags == null) { throw new TypeError('flags can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId }; let queryValues = { flags: flags, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "5641efbc-6f9b-401a-baeb-d3da22489e5e", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, null, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {Contracts.CustomTestFieldDefinition[]} newFields * @param {string} project - Project ID or project name */ addCustomFields(newFields, project) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "b67d46d8-b70e-4dcc-a98c-7f74b52ba82f", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, newFields, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.CustomTestFieldDefinition, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {Contracts.CustomTestFieldScope} scopeFilter */ queryCustomFields(project, scopeFilter) { return __awaiter(this, void 0, void 0, function* () { if (scopeFilter == null) { throw new TypeError('scopeFilter can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { scopeFilter: scopeFilter, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "b67d46d8-b70e-4dcc-a98c-7f74b52ba82f", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.CustomTestFieldDefinition, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get file coverage for the specified file * * @param {Contracts.FileCoverageRequest} fileCoverageRequest - File details with pull request iteration context * @param {string} project - Project ID or project name */ getFileLevelCodeCoverage(fileCoverageRequest, project) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "4a6d0c46-51ca-45aa-9163-249cee3289b7", routeValues); let url = verData.requestUrl; let apiVersion = verData.apiVersion; let accept = this.createAcceptHeader("text/plain", apiVersion); resolve((yield this.http.get(url, { "Accept": accept })).message); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {number} buildDefinitionId * @param {Date} minBuildCreatedDate */ getFlakyTestResultsByBuildDefinitionId(project, buildDefinitionId, minBuildCreatedDate) { return __awaiter(this, void 0, void 0, function* () { if (buildDefinitionId == null) { throw new TypeError('buildDefinitionId can not be null or undefined'); } if (minBuildCreatedDate == null) { throw new TypeError('minBuildCreatedDate can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { buildDefinitionId: buildDefinitionId, minBuildCreatedDate: minBuildCreatedDate, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "8ed3cf63-7153-4722-a107-c49dae996143", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestCaseResult, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {number} runId */ getFlakyTestResultsByTestRun(project, runId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "31cc4b31-416f-45cd-9b45-39534279e10c", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestCaseResult, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {Contracts.ResultsFilter} filter * @param {string} project - Project ID or project name */ queryTestResultHistory(filter, project) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "bdf7a97b-0395-4da8-9d5d-f957619327d1", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, filter, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestResultHistory, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get test run message logs * * @param {string} project - Project ID or project name * @param {number} runId - ID of the run to get. */ getTestRunMessageLogs(project, runId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "e9ab0c6a-1984-418b-87c0-ee4202318ba3", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestMessageLogDetails, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get summary of test results. * * @param {string} project - Project ID or project name * @param {number} pipelineId - Pipeline Id. This is same as build Id. * @param {string} stageName - Name of the stage. Maximum supported length for name is 256 character. * @param {string} phaseName - Name of the phase. Maximum supported length for name is 256 character. * @param {string} jobName - Matrixing in YAML generates copies of a job with different inputs in matrix. JobName is the name of those input. Maximum supported length for name is 256 character. * @param {Contracts.Metrics[]} metricNames * @param {boolean} groupByNode - Group summary for each node of the pipleine heirarchy */ getTestPipelineMetrics(project, pipelineId, stageName, phaseName, jobName, metricNames, groupByNode) { return __awaiter(this, void 0, void 0, function* () { if (pipelineId == null) { throw new TypeError('pipelineId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { pipelineId: pipelineId, stageName: stageName, phaseName: phaseName, jobName: jobName, metricNames: metricNames && metricNames.join(","), groupByNode: groupByNode, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "65f35817-86a1-4131-b38b-3ec2d4744e53", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.PipelineTestMetrics, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {number} buildId * @param {string} publishContext * @param {string} groupBy * @param {string} filter * @param {string} orderby * @param {boolean} shouldIncludeResults * @param {boolean} queryRunSummaryForInProgress */ getTestResultDetailsForBuild(project, buildId, publishContext, groupBy, filter, orderby, shouldIncludeResults, queryRunSummaryForInProgress) { return __awaiter(this, void 0, void 0, function* () { if (buildId == null) { throw new TypeError('buildId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { buildId: buildId, publishContext: publishContext, groupBy: groupBy, '$filter': filter, '$orderby': orderby, shouldIncludeResults: shouldIncludeResults, queryRunSummaryForInProgress: queryRunSummaryForInProgress, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "a518c749-4524-45b2-a7ef-1ac009b312cd", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestResultsDetails, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {number} releaseId * @param {number} releaseEnvId * @param {string} publishContext * @param {string} groupBy * @param {string} filter * @param {string} orderby * @param {boolean} shouldIncludeResults * @param {boolean} queryRunSummaryForInProgress */ getTestResultDetailsForRelease(project, releaseId, releaseEnvId, publishContext, groupBy, filter, orderby, shouldIncludeResults, queryRunSummaryForInProgress) { return __awaiter(this, void 0, void 0, function* () { if (releaseId == null) { throw new TypeError('releaseId can not be null or undefined'); } if (releaseEnvId == null) { throw new TypeError('releaseEnvId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { releaseId: releaseId, releaseEnvId: releaseEnvId, publishContext: publishContext, groupBy: groupBy, '$filter': filter, '$orderby': orderby, shouldIncludeResults: shouldIncludeResults, queryRunSummaryForInProgress: queryRunSummaryForInProgress, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "19a8183a-69fb-47d7-bfbf-1b6b0d921294", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestResultsDetails, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {Contracts.TestResultDocument} document * @param {string} project - Project ID or project name * @param {number} runId */ publishTestResultDocument(document, project, runId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "74838649-b038-42f1-a0e7-6deb3973bf14", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, document, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {number} buildId * @param {string} publishContext * @param {string[]} fields * @param {string} continuationToken */ getResultGroupsByBuild(project, buildId, publishContext, fields, continuationToken) { return __awaiter(this, void 0, void 0, function* () { if (buildId == null) { throw new TypeError('buildId can not be null or undefined'); } if (publishContext == null) { throw new TypeError('publishContext can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { buildId: buildId, publishContext: publishContext, fields: fields && fields.join(","), continuationToken: continuationToken, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "e49244d1-c49f-49ad-a717-3bbaefe6a201", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, null, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {number} releaseId * @param {string} publishContext * @param {number} releaseEnvId * @param {string[]} fields * @param {string} continuationToken */ getResultGroupsByRelease(project, releaseId, publishContext, releaseEnvId, fields, continuationToken) { return __awaiter(this, void 0, void 0, function* () { if (releaseId == null) { throw new TypeError('releaseId can not be null or undefined'); } if (publishContext == null) { throw new TypeError('publishContext can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { releaseId: releaseId, publishContext: publishContext, releaseEnvId: releaseEnvId, fields: fields && fields.join(","), continuationToken: continuationToken, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "3c2b6bb0-0620-434a-a5c3-26aa0fcfda15", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, null, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get list of test Result meta data details for corresponding testcasereferenceId * * @param {string[]} testCaseReferenceIds - TestCaseReference Ids of the test Result to be queried, comma separated list of valid ids (limit no. of ids 200). * @param {string} project - Project ID or project name * @param {Contracts.ResultMetaDataDetails} detailsToInclude - Details to include with test results metadata. Default is None. Other values are FlakyIdentifiers. */ queryTestResultsMetaData(testCaseReferenceIds, project, detailsToInclude) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { detailsToInclude: detailsToInclude, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.4", "testresults", "b72ff4c0-4341-4213-ba27-f517cf341c95", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, testCaseReferenceIds, options); let ret = this.formatResponse(res.result, null, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Update properties of test result meta data * * @param {Contracts.TestResultMetaDataUpdateInput} testResultMetaDataUpdateInput - TestResultMetaData update input TestResultMetaDataUpdateInput * @param {string} project - Project ID or project name * @param {number} testCaseReferenceId - TestCaseReference Id of Test Result to be updated. */ updateTestResultsMetaData(testResultMetaDataUpdateInput, project, testCaseReferenceId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, testCaseReferenceId: testCaseReferenceId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.4", "testresults", "b72ff4c0-4341-4213-ba27-f517cf341c95", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.update(url, testResultMetaDataUpdateInput, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {Contracts.TestResultsQuery} query * @param {string} project - Project ID or project name */ getTestResultsByQuery(query, project) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.2", "testresults", "14033a2c-af25-4af1-9e39-8ef6900482e3", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, query, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestResultsQuery, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {Contracts.QueryModel} queryModel * @param {string} project - Project ID or project name * @param {boolean} includeResultDetails * @param {boolean} includeIterationDetails * @param {number} skip * @param {number} top */ getTestResultsByQueryWiql(queryModel, project, includeResultDetails, includeIterationDetails, skip, top) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { includeResultDetails: includeResultDetails, includeIterationDetails: includeIterationDetails, '$skip': skip, '$top': top, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.2", "testresults", "5ea78be3-2f5a-4110-8034-c27f24c62db1", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, queryModel, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestCaseResult, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {Contracts.TestCaseResult[]} results * @param {string} project - Project ID or project name * @param {number} runId */ addTestResultsToTestRun(results, project, runId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.2", "testresults", "02afa165-e79a-4d70-8f0c-2af0f35b4e07", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, results, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestCaseResult, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {number} runId * @param {number} testResultId * @param {Contracts.ResultDetails} detailsToInclude */ getTestResultById(project, runId, testResultId, detailsToInclude) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId, testResultId: testResultId }; let queryValues = { detailsToInclude: detailsToInclude, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.2", "testresults", "02afa165-e79a-4d70-8f0c-2af0f35b4e07", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestCaseResult, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {number} runId * @param {Contracts.ResultDetails} detailsToInclude * @param {number} skip * @param {number} top * @param {Contracts.TestOutcome[]} outcomes * @param {boolean} newTestsOnly */ getTestResults(project, runId, detailsToInclude, skip, top, outcomes, newTestsOnly) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId }; let queryValues = { detailsToInclude: detailsToInclude, '$skip': skip, '$top': top, outcomes: outcomes && outcomes.join(","), '$newTestsOnly': newTestsOnly, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.2", "testresults", "02afa165-e79a-4d70-8f0c-2af0f35b4e07", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestCaseResult, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {Contracts.TestCaseResult[]} results * @param {string} project - Project ID or project name * @param {number} runId */ updateTestResults(results, project, runId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.2", "testresults", "02afa165-e79a-4d70-8f0c-2af0f35b4e07", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.update(url, results, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestCaseResult, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {number} buildId * @param {string} publishContext * @param {Contracts.TestOutcome[]} outcomes * @param {number} top * @param {string} continuationToken */ getTestResultsByBuild(project, buildId, publishContext, outcomes, top, continuationToken) { return __awaiter(this, void 0, void 0, function* () { if (buildId == null) { throw new TypeError('buildId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { buildId: buildId, publishContext: publishContext, outcomes: outcomes && outcomes.join(","), '$top': top, continuationToken: continuationToken, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "f48cc885-dbc4-4efc-ab19-ae8c19d1e02a", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, null, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get a list of results. * * @param {string} project - Project ID or project name * @param {number} pipelineId - Pipeline Id. This is same as build Id. * @param {string} stageName - Name of the stage. Maximum supported length for name is 256 character. * @param {string} phaseName - Name of the phase. Maximum supported length for name is 256 character. * @param {string} jobName - Matrixing in YAML generates copies of a job with different inputs in matrix. JobName is the name of those input. Maximum supported length for name is 256 character. * @param {Contracts.TestOutcome[]} outcomes - List of outcome of results * @param {number} top - Maximum number of results to return * @param {String} continuationToken - Header to pass the continuationToken */ getTestResultsByPipeline(customHeaders, project, pipelineId, stageName, phaseName, jobName, outcomes, top, continuationToken) { return __awaiter(this, void 0, void 0, function* () { if (pipelineId == null) { throw new TypeError('pipelineId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { pipelineId: pipelineId, stageName: stageName, phaseName: phaseName, jobName: jobName, outcomes: outcomes && outcomes.join(","), '$top': top, }; customHeaders = customHeaders || {}; customHeaders["x-ms-continuationtoken"] = "continuationToken"; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "80169dc2-30c3-4c25-84b2-dd67d7ff1f52", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); options.additionalHeaders = customHeaders; let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, null, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {number} releaseId * @param {number} releaseEnvid * @param {string} publishContext * @param {Contracts.TestOutcome[]} outcomes * @param {number} top * @param {string} continuationToken */ getTestResultsByRelease(project, releaseId, releaseEnvid, publishContext, outcomes, top, continuationToken) { return __awaiter(this, void 0, void 0, function* () { if (releaseId == null) { throw new TypeError('releaseId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { releaseId: releaseId, releaseEnvid: releaseEnvid, publishContext: publishContext, outcomes: outcomes && outcomes.join(","), '$top': top, continuationToken: continuationToken, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "3994b949-77e5-495d-8034-edf80d95b84e", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, null, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get all the available groups details and for these groups get failed and aborted results. * * @param {string} project - Project ID or project name * @param {number} pipelineId - Pipeline Id. This is same as build Id. * @param {string} stageName - Name of the stage. Maximum supported length for name is 256 character. * @param {string} phaseName - Name of the phase. Maximum supported length for name is 256 character. * @param {string} jobName - Matrixing in YAML generates copies of a job with different inputs in matrix. JobName is the name of those input. Maximum supported length for name is 256 character. * @param {boolean} shouldIncludeFailedAndAbortedResults - If true, it will return Ids of failed and aborted results for each test group * @param {boolean} queryGroupSummaryForInProgress - If true, it will calculate summary for InProgress runs as well. */ testResultsGroupDetails(project, pipelineId, stageName, phaseName, jobName, shouldIncludeFailedAndAbortedResults, queryGroupSummaryForInProgress) { return __awaiter(this, void 0, void 0, function* () { if (pipelineId == null) { throw new TypeError('pipelineId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { pipelineId: pipelineId, stageName: stageName, phaseName: phaseName, jobName: jobName, shouldIncludeFailedAndAbortedResults: shouldIncludeFailedAndAbortedResults, queryGroupSummaryForInProgress: queryGroupSummaryForInProgress, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "f903b850-06af-4b50-a344-d7bbfb19e93b", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestResultsDetails, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {number} buildId * @param {string} publishContext * @param {boolean} includeFailureDetails * @param {Contracts.BuildReference} buildToCompare */ queryTestResultsReportForBuild(project, buildId, publishContext, includeFailureDetails, buildToCompare) { return __awaiter(this, void 0, void 0, function* () { if (buildId == null) { throw new TypeError('buildId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { buildId: buildId, publishContext: publishContext, includeFailureDetails: includeFailureDetails, buildToCompare: buildToCompare, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "e009fa95-95a5-4ad4-9681-590043ce2423", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestResultSummary, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get summary of test results. * * @param {string} project - Project ID or project name * @param {number} pipelineId - Pipeline Id. This is same as build Id. * @param {string} stageName - Name of the stage. Maximum supported length for name is 256 character. * @param {string} phaseName - Name of the phase. Maximum supported length for name is 256 character. * @param {string} jobName - Matrixing in YAML generates copies of a job with different inputs in matrix. JobName is the name of those input. Maximum supported length for name is 256 character. * @param {boolean} includeFailureDetails - If true returns failure insights */ queryTestResultsReportForPipeline(project, pipelineId, stageName, phaseName, jobName, includeFailureDetails) { return __awaiter(this, void 0, void 0, function* () { if (pipelineId == null) { throw new TypeError('pipelineId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { pipelineId: pipelineId, stageName: stageName, phaseName: phaseName, jobName: jobName, includeFailureDetails: includeFailureDetails, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "71f746a1-7d68-40fe-b705-9d821a73dff2", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestResultSummary, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {number} releaseId * @param {number} releaseEnvId * @param {string} publishContext * @param {boolean} includeFailureDetails * @param {Contracts.ReleaseReference} releaseToCompare */ queryTestResultsReportForRelease(project, releaseId, releaseEnvId, publishContext, includeFailureDetails, releaseToCompare) { return __awaiter(this, void 0, void 0, function* () { if (releaseId == null) { throw new TypeError('releaseId can not be null or undefined'); } if (releaseEnvId == null) { throw new TypeError('releaseEnvId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { releaseId: releaseId, releaseEnvId: releaseEnvId, publishContext: publishContext, includeFailureDetails: includeFailureDetails, releaseToCompare: releaseToCompare, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "f10f9577-2c04-45ab-8c99-b26567a7cd55", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestResultSummary, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {Contracts.ReleaseReference[]} releases * @param {string} project - Project ID or project name */ queryTestResultsSummaryForReleases(releases, project) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "f10f9577-2c04-45ab-8c99-b26567a7cd55", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, releases, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestResultSummary, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {Contracts.TestResultsContext} resultsContext * @param {string} project - Project ID or project name * @param {number[]} workItemIds */ queryTestSummaryByRequirement(resultsContext, project, workItemIds) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { workItemIds: workItemIds && workItemIds.join(","), }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "3b7fd26f-c335-4e55-afc1-a588f5e2af3c", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, resultsContext, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestSummaryForWorkItem, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {Contracts.TestResultTrendFilter} filter * @param {string} project - Project ID or project name */ queryResultTrendForBuild(filter, project) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "0886a7ae-315a-4dba-9122-bcce93301f3a", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, filter, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.AggregatedDataForResultTrend, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {Contracts.TestResultTrendFilter} filter * @param {string} project - Project ID or project name */ queryResultTrendForRelease(filter, project) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "107f23c3-359a-460a-a70c-63ee739f9f9a", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, filter, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.AggregatedDataForResultTrend, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {Contracts.RunCreateModel} testRun * @param {string} project - Project ID or project name */ createTestRun(testRun, project) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "364538f9-8062-4ce0-b024-75a0fb463f0d", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, testRun, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestRun, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {number} runId */ deleteTestRun(project, runId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "364538f9-8062-4ce0-b024-75a0fb463f0d", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.del(url, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {number} runId * @param {boolean} includeDetails * @param {boolean} includeTags */ getTestRunById(project, runId, includeDetails, includeTags) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId }; let queryValues = { includeDetails: includeDetails, includeTags: includeTags, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "364538f9-8062-4ce0-b024-75a0fb463f0d", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestRun, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {string} buildUri * @param {string} owner * @param {string} tmiRunId * @param {number} planId * @param {boolean} includeRunDetails * @param {boolean} automated * @param {number} skip * @param {number} top */ getTestRuns(project, buildUri, owner, tmiRunId, planId, includeRunDetails, automated, skip, top) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { buildUri: buildUri, owner: owner, tmiRunId: tmiRunId, planId: planId, includeRunDetails: includeRunDetails, automated: automated, '$skip': skip, '$top': top, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "364538f9-8062-4ce0-b024-75a0fb463f0d", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestRun, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Query Test Runs based on filters. Mandatory fields are minLastUpdatedDate and maxLastUpdatedDate. * * @param {string} project - Project ID or project name * @param {Date} minLastUpdatedDate - Minimum Last Modified Date of run to be queried (Mandatory). * @param {Date} maxLastUpdatedDate - Maximum Last Modified Date of run to be queried (Mandatory, difference between min and max date can be atmost 7 days). * @param {Contracts.TestRunState} state - Current state of the Runs to be queried. * @param {number[]} planIds - Plan Ids of the Runs to be queried, comma separated list of valid ids. * @param {boolean} isAutomated - Automation type of the Runs to be queried. * @param {Contracts.TestRunPublishContext} publishContext - PublishContext of the Runs to be queried. * @param {number[]} buildIds - Build Ids of the Runs to be queried, comma separated list of valid ids. * @param {number[]} buildDefIds - Build Definition Ids of the Runs to be queried, comma separated list of valid ids. * @param {string} branchName - Source Branch name of the Runs to be queried. * @param {number[]} releaseIds - Release Ids of the Runs to be queried, comma separated list of valid ids. * @param {number[]} releaseDefIds - Release Definition Ids of the Runs to be queried, comma separated list of valid ids. * @param {number[]} releaseEnvIds - Release Environment Ids of the Runs to be queried, comma separated list of valid ids. * @param {number[]} releaseEnvDefIds - Release Environment Definition Ids of the Runs to be queried, comma separated list of valid ids. * @param {string} runTitle - Run Title of the Runs to be queried. * @param {number} top - Number of runs to be queried. Limit is 100 * @param {string} continuationToken - continuationToken received from previous batch or null for first batch. It is not supposed to be created (or altered, if received from last batch) by user. */ queryTestRuns(project, minLastUpdatedDate, maxLastUpdatedDate, state, planIds, isAutomated, publishContext, buildIds, buildDefIds, branchName, releaseIds, releaseDefIds, releaseEnvIds, releaseEnvDefIds, runTitle, top, continuationToken) { return __awaiter(this, void 0, void 0, function* () { if (minLastUpdatedDate == null) { throw new TypeError('minLastUpdatedDate can not be null or undefined'); } if (maxLastUpdatedDate == null) { throw new TypeError('maxLastUpdatedDate can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { minLastUpdatedDate: minLastUpdatedDate, maxLastUpdatedDate: maxLastUpdatedDate, state: state, planIds: planIds && planIds.join(","), isAutomated: isAutomated, publishContext: publishContext, buildIds: buildIds && buildIds.join(","), buildDefIds: buildDefIds && buildDefIds.join(","), branchName: branchName, releaseIds: releaseIds && releaseIds.join(","), releaseDefIds: releaseDefIds && releaseDefIds.join(","), releaseEnvIds: releaseEnvIds && releaseEnvIds.join(","), releaseEnvDefIds: releaseEnvDefIds && releaseEnvDefIds.join(","), runTitle: runTitle, '$top': top, continuationToken: continuationToken, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "364538f9-8062-4ce0-b024-75a0fb463f0d", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestRun, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {Contracts.RunUpdateModel} runUpdateModel * @param {string} project - Project ID or project name * @param {number} runId */ updateTestRun(runUpdateModel, project, runId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "364538f9-8062-4ce0-b024-75a0fb463f0d", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.update(url, runUpdateModel, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestRun, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get test run summary, used when we want to get summary of a run by outcome. Test run should be in completed state. * * @param {string} project - Project ID or project name * @param {number} runId - ID of the run to get. */ getTestRunSummaryByOutcome(project, runId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "5c6a250c-53b7-4851-990c-42a7a00c8b39", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestRunStatistic, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get TestResultsSettings data * * @param {string} project - Project ID or project name * @param {Contracts.TestResultsSettingsType} settingsType */ getTestResultsSettings(project, settingsType) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { settingsType: settingsType, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.3", "testresults", "7319952e-e5a9-4e19-a006-84f3be8b7c68", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestResultsSettings, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Update project settings of test results * * @param {Contracts.TestResultsUpdateSettings} testResultsUpdateSettings * @param {string} project - Project ID or project name */ updatePipelinesTestSettings(testResultsUpdateSettings, project) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.3", "testresults", "7319952e-e5a9-4e19-a006-84f3be8b7c68", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.update(url, testResultsUpdateSettings, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestResultsSettings, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Gets the list of results whose failure matches with the provided one. * * @param {string} project - Project ID or project name * @param {number} runId - id of test run * @param {number} testResultId - id of test result inside a test run * @param {number} testSubResultId - id of subresult inside a test result * @param {number} top - Maximum number of results to return * @param {String} continuationToken - Header to pass the continuationToken */ getSimilarTestResults(customHeaders, project, runId, testResultId, testSubResultId, top, continuationToken) { return __awaiter(this, void 0, void 0, function* () { if (testSubResultId == null) { throw new TypeError('testSubResultId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId, testResultId: testResultId }; let queryValues = { testSubResultId: testSubResultId, '$top': top, }; customHeaders = customHeaders || {}; customHeaders["x-ms-continuationtoken"] = "continuationToken"; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "67d0a074-b255-4902-a639-e3e6de7a3de6", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); options.additionalHeaders = customHeaders; let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestCaseResult, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get test run statistics , used when we want to get summary of a run by outcome. * * @param {string} project - Project ID or project name * @param {number} runId - ID of the run to get. */ getTestRunStatistics(project, runId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.2", "testresults", "82b986e8-ca9e-4a89-b39e-f65c69bc104a", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestRunStatistic, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * <p>Gets the coverage status for the last successful build of a definition, optionally scoped to a specific branch</p> * * @param {string} project - Project ID or project name * @param {string} definition - The ID or name of the definition. * @param {string} branchName - The branch name. * @param {string} label - The String to replace the default text on the left side of the badge. */ getCoverageStatusBadge(project, definition, branchName, label) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, definition: definition }; let queryValues = { branchName: branchName, label: label, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "73b7c9d8-defb-4b60-b3d6-2162d60d6b13", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get all the tags in a build. * * @param {string} project - Project ID or project name * @param {number} buildId - Build ID */ getTestTagsForBuild(project, buildId) { return __awaiter(this, void 0, void 0, function* () { if (buildId == null) { throw new TypeError('buildId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { buildId: buildId, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "52ee2057-4b54-41a6-a18c-ed4375a00f8d", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, null, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get all the tags in a release. * * @param {string} project - Project ID or project name * @param {number} releaseId - Release ID * @param {number} releaseEnvId - Release environment ID */ getTestTagsForRelease(project, releaseId, releaseEnvId) { return __awaiter(this, void 0, void 0, function* () { if (releaseId == null) { throw new TypeError('releaseId can not be null or undefined'); } if (releaseEnvId == null) { throw new TypeError('releaseEnvId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { releaseId: releaseId, releaseEnvId: releaseEnvId, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "52ee2057-4b54-41a6-a18c-ed4375a00f8d", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, null, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Update tags of a run, Tags can be Added and Deleted * * @param {Contracts.TestTagsUpdateModel} testTagsUpdateModel - TestTagsUpdateModel * @param {string} project - Project ID or project name * @param {number} runId - RunId of the run */ updateTestRunTags(testTagsUpdateModel, project, runId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "a5e2f411-2b43-45f3-989c-05b71339f5b8", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.update(url, testTagsUpdateModel, options); let ret = this.formatResponse(res.result, null, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get all the tags in a build. * * @param {string} project - Project ID or project name * @param {number} buildId - Build ID */ getTestTagSummaryForBuild(project, buildId) { return __awaiter(this, void 0, void 0, function* () { if (buildId == null) { throw new TypeError('buildId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { buildId: buildId, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "655a8f6b-fec7-4b46-b672-68b44141b498", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get all the tags in a release. * * @param {string} project - Project ID or project name * @param {number} releaseId - Release ID * @param {number} releaseEnvId - Release environment ID */ getTestTagSummaryForRelease(project, releaseId, releaseEnvId) { return __awaiter(this, void 0, void 0, function* () { if (releaseId == null) { throw new TypeError('releaseId can not be null or undefined'); } if (releaseEnvId == null) { throw new TypeError('releaseEnvId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { releaseId: releaseId, releaseEnvId: releaseEnvId, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "655a8f6b-fec7-4b46-b672-68b44141b498", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Creates an attachment in the LogStore for the specified buildId. * * @param {Contracts.TestAttachmentRequestModel} attachmentRequestModel - Contains attachment info like stream, filename, comment, attachmentType * @param {string} project - Project ID or project name * @param {number} buildId - BuildId */ createBuildAttachmentInLogStore(attachmentRequestModel, project, buildId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, buildId: buildId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "6f747e16-18c2-435a-b4fb-fa05d6845fee", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, attachmentRequestModel, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Creates an attachment in the LogStore for the specified runId. * * @param {Contracts.TestAttachmentRequestModel} attachmentRequestModel - Contains attachment info like stream, filename, comment, attachmentType * @param {string} project - Project ID or project name * @param {number} runId - Test RunId */ createTestRunLogStoreAttachment(attachmentRequestModel, project, runId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "1026d5de-4b0b-46ae-a31f-7c59b6af51ef", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, attachmentRequestModel, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Deletes the attachment with the specified filename for the specified runId from the LogStore. * * @param {string} project - Project ID or project name * @param {number} runId - Test RunId * @param {string} filename - Attachment FileName */ deleteTestRunLogStoreAttachment(project, runId, filename) { return __awaiter(this, void 0, void 0, function* () { if (filename == null) { throw new TypeError('filename can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId }; let queryValues = { filename: filename, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "1026d5de-4b0b-46ae-a31f-7c59b6af51ef", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.del(url, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Returns the attachment with the specified filename for the specified runId from the LogStore. * * @param {string} project - Project ID or project name * @param {number} runId - Test RunId * @param {string} filename - Attachment FileName */ getTestRunLogStoreAttachmentContent(project, runId, filename) { return __awaiter(this, void 0, void 0, function* () { if (filename == null) { throw new TypeError('filename can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId }; let queryValues = { filename: filename, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "1026d5de-4b0b-46ae-a31f-7c59b6af51ef", routeValues, queryValues); let url = verData.requestUrl; let apiVersion = verData.apiVersion; let accept = this.createAcceptHeader("application/octet-stream", apiVersion); resolve((yield this.http.get(url, { "Accept": accept })).message); } catch (err) { reject(err); } })); }); } /** * Returns a list of attachments for the specified runId from the LogStore. * * @param {string} project - Project ID or project name * @param {number} runId - Test RunId */ getTestRunLogStoreAttachments(project, runId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "1026d5de-4b0b-46ae-a31f-7c59b6af51ef", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestLogStoreAttachment, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Returns the attachment with the specified filename for the specified runId from the LogStore. * * @param {string} project - Project ID or project name * @param {number} runId - Test RunId * @param {string} filename - Attachment FileName */ getTestRunLogStoreAttachmentZip(project, runId, filename) { return __awaiter(this, void 0, void 0, function* () { if (filename == null) { throw new TypeError('filename can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId }; let queryValues = { filename: filename, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "1026d5de-4b0b-46ae-a31f-7c59b6af51ef", routeValues, queryValues); let url = verData.requestUrl; let apiVersion = verData.apiVersion; let accept = this.createAcceptHeader("application/zip", apiVersion); resolve((yield this.http.get(url, { "Accept": accept })).message); } catch (err) { reject(err); } })); }); } /** * Creates a new test failure type * * @param {Contracts.TestResultFailureTypeRequestModel} testResultFailureType * @param {string} project - Project ID or project name */ createFailureType(testResultFailureType, project) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "c4ac0486-830c-4a2a-9ef9-e8a1791a70fd", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, testResultFailureType, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Deletes a test failure type with specified failureTypeId * * @param {string} project - Project ID or project name * @param {number} failureTypeId */ deleteFailureType(project, failureTypeId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, failureTypeId: failureTypeId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "c4ac0486-830c-4a2a-9ef9-e8a1791a70fd", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.del(url, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Returns the list of test failure types. * * @param {string} project - Project ID or project name */ getFailureTypes(project) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "c4ac0486-830c-4a2a-9ef9-e8a1791a70fd", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, null, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get history of a test method using TestHistoryQuery * * @param {Contracts.TestHistoryQuery} filter - TestHistoryQuery to get history * @param {string} project - Project ID or project name */ queryTestHistory(filter, project) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.2", "testresults", "2a41bd6a-8118-4403-b74e-5ba7492aed9d", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, filter, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestHistoryQuery, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get list of build attachments reference * * @param {string} project - Project ID or project name * @param {number} buildId - Id of the build to get * @param {Contracts.TestLogType} type - type of the attachment to get * @param {string} directoryPath - directory path for which attachments are needed * @param {string} fileNamePrefix - file name prefix to filter the list of attachment * @param {boolean} fetchMetaData - Default is false, set if metadata is needed * @param {number} top - Number of test attachments reference to return * @param {String} continuationToken - Header to pass the continuationToken */ getTestLogsForBuild(customHeaders, project, buildId, type, directoryPath, fileNamePrefix, fetchMetaData, top, continuationToken) { return __awaiter(this, void 0, void 0, function* () { if (buildId == null) { throw new TypeError('buildId can not be null or undefined'); } if (type == null) { throw new TypeError('type can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { buildId: buildId, type: type, directoryPath: directoryPath, fileNamePrefix: fileNamePrefix, fetchMetaData: fetchMetaData, top: top, }; customHeaders = customHeaders || {}; customHeaders["x-ms-continuationtoken"] = "continuationToken"; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "dff8ce3a-e539-4817-a405-d968491a88f1", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); options.additionalHeaders = customHeaders; let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestLog, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get list of test result attachments reference * * @param {string} project - Project ID or project name * @param {number} runId - Id of the test run that contains the result * @param {number} resultId - Id of the test result * @param {Contracts.TestLogType} type - type of attachments to get * @param {string} directoryPath - directory path of attachments to get * @param {string} fileNamePrefix - file name prefix to filter the list of attachment * @param {boolean} fetchMetaData - Default is false, set if metadata is needed * @param {number} top - Numbe of attachments reference to return * @param {String} continuationToken - Header to pass the continuationToken */ getTestResultLogs(customHeaders, project, runId, resultId, type, directoryPath, fileNamePrefix, fetchMetaData, top, continuationToken) { return __awaiter(this, void 0, void 0, function* () { if (type == null) { throw new TypeError('type can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId, resultId: resultId }; let queryValues = { type: type, directoryPath: directoryPath, fileNamePrefix: fileNamePrefix, fetchMetaData: fetchMetaData, top: top, }; customHeaders = customHeaders || {}; customHeaders["x-ms-continuationtoken"] = "continuationToken"; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "714caaac-ae1e-4869-8323-9bc0f5120dbf", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); options.additionalHeaders = customHeaders; let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestLog, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get list of test subresult attachments reference * * @param {string} project - Project ID or project name * @param {number} runId - Id of the test run that contains the results * @param {number} resultId - Id of the test result that contains subresult * @param {number} subResultId - Id of the test subresult * @param {Contracts.TestLogType} type - type of the attachments to get * @param {string} directoryPath - directory path of the attachment to get * @param {string} fileNamePrefix - file name prefix to filter the list of attachments * @param {boolean} fetchMetaData - Default is false, set if metadata is needed * @param {number} top - Number of attachments reference to return * @param {String} continuationToken - Header to pass the continuationToken */ getTestSubResultLogs(customHeaders, project, runId, resultId, subResultId, type, directoryPath, fileNamePrefix, fetchMetaData, top, continuationToken) { return __awaiter(this, void 0, void 0, function* () { if (subResultId == null) { throw new TypeError('subResultId can not be null or undefined'); } if (type == null) { throw new TypeError('type can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId, resultId: resultId }; let queryValues = { subResultId: subResultId, type: type, directoryPath: directoryPath, fileNamePrefix: fileNamePrefix, fetchMetaData: fetchMetaData, top: top, }; customHeaders = customHeaders || {}; customHeaders["x-ms-continuationtoken"] = "continuationToken"; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "714caaac-ae1e-4869-8323-9bc0f5120dbf", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); options.additionalHeaders = customHeaders; let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestLog, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get list of test run attachments reference * * @param {string} project - Project ID or project name * @param {number} runId - Id of the test run * @param {Contracts.TestLogType} type - type of the attachments to get * @param {string} directoryPath - directory path for which attachments are needed * @param {string} fileNamePrefix - file name prefix to filter the list of attachment * @param {boolean} fetchMetaData - Default is false, set if metadata is needed * @param {number} top - Number of attachments reference to return * @param {String} continuationToken - Header to pass the continuationToken */ getTestRunLogs(customHeaders, project, runId, type, directoryPath, fileNamePrefix, fetchMetaData, top, continuationToken) { return __awaiter(this, void 0, void 0, function* () { if (type == null) { throw new TypeError('type can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId }; let queryValues = { type: type, directoryPath: directoryPath, fileNamePrefix: fileNamePrefix, fetchMetaData: fetchMetaData, top: top, }; customHeaders = customHeaders || {}; customHeaders["x-ms-continuationtoken"] = "continuationToken"; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "5b47b946-e875-4c9a-acdc-2a20996caebe", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); options.additionalHeaders = customHeaders; let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestLog, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get SAS Uri of a build attachment * * @param {string} project - Project ID or project name * @param {number} build - Id of the build to get * @param {Contracts.TestLogType} type - type of the file * @param {string} filePath - filePath for which sas uri is needed */ getTestLogStoreEndpointDetailsForBuildLog(project, build, type, filePath) { return __awaiter(this, void 0, void 0, function* () { if (build == null) { throw new TypeError('build can not be null or undefined'); } if (type == null) { throw new TypeError('type can not be null or undefined'); } if (filePath == null) { throw new TypeError('filePath can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { build: build, type: type, filePath: filePath, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "39b09be7-f0c9-4a83-a513-9ae31b45c56f", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestLogStoreEndpointDetails, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Create and Get sas uri of the build container * * @param {string} project - Project ID or project name * @param {number} buildId - Id of the build to get * @param {Contracts.TestLogStoreOperationType} testLogStoreOperationType - Type of operation to perform using sas uri */ testLogStoreEndpointDetailsForBuild(project, buildId, testLogStoreOperationType) { return __awaiter(this, void 0, void 0, function* () { if (buildId == null) { throw new TypeError('buildId can not be null or undefined'); } if (testLogStoreOperationType == null) { throw new TypeError('testLogStoreOperationType can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { buildId: buildId, testLogStoreOperationType: testLogStoreOperationType, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "39b09be7-f0c9-4a83-a513-9ae31b45c56f", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, null, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestLogStoreEndpointDetails, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get SAS Uri of a test results attachment * * @param {string} project - Project ID or project name * @param {number} runId - Id of the test run that contains result * @param {number} resultId - Id of the test result whose files need to be downloaded * @param {Contracts.TestLogType} type - type of the file * @param {string} filePath - filePath for which sas uri is needed */ getTestLogStoreEndpointDetailsForResultLog(project, runId, resultId, type, filePath) { return __awaiter(this, void 0, void 0, function* () { if (type == null) { throw new TypeError('type can not be null or undefined'); } if (filePath == null) { throw new TypeError('filePath can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId, resultId: resultId }; let queryValues = { type: type, filePath: filePath, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "da630b37-1236-45b5-945e-1d7bdb673850", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestLogStoreEndpointDetails, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get SAS Uri of a test subresults attachment * * @param {string} project - Project ID or project name * @param {number} runId - Id of the test run that contains result * @param {number} resultId - Id of the test result that contains subresult * @param {number} subResultId - Id of the test subresult whose file sas uri is needed * @param {Contracts.TestLogType} type - type of the file * @param {string} filePath - filePath for which sas uri is needed */ getTestLogStoreEndpointDetailsForSubResultLog(project, runId, resultId, subResultId, type, filePath) { return __awaiter(this, void 0, void 0, function* () { if (subResultId == null) { throw new TypeError('subResultId can not be null or undefined'); } if (type == null) { throw new TypeError('type can not be null or undefined'); } if (filePath == null) { throw new TypeError('filePath can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId, resultId: resultId }; let queryValues = { subResultId: subResultId, type: type, filePath: filePath, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "da630b37-1236-45b5-945e-1d7bdb673850", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestLogStoreEndpointDetails, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Create empty file for a result and Get Sas uri for the file * * @param {string} project - Project ID or project name * @param {number} runId - Id of the test run that contains the result * @param {number} resultId - Id of the test results that contains sub result * @param {number} subResultId - Id of the test sub result whose file sas uri is needed * @param {string} filePath - file path inside the sub result for which sas uri is needed * @param {Contracts.TestLogType} type - Type of the file for download */ testLogStoreEndpointDetailsForResult(project, runId, resultId, subResultId, filePath, type) { return __awaiter(this, void 0, void 0, function* () { if (subResultId == null) { throw new TypeError('subResultId can not be null or undefined'); } if (filePath == null) { throw new TypeError('filePath can not be null or undefined'); } if (type == null) { throw new TypeError('type can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId, resultId: resultId }; let queryValues = { subResultId: subResultId, filePath: filePath, type: type, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "da630b37-1236-45b5-945e-1d7bdb673850", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, null, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestLogStoreEndpointDetails, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get SAS Uri of a test run attachment * * @param {string} project - Project ID or project name * @param {number} runId - Id of the test run whose file has to be downloaded * @param {Contracts.TestLogType} type - type of the file * @param {string} filePath - filePath for which sas uri is needed */ getTestLogStoreEndpointDetailsForRunLog(project, runId, type, filePath) { return __awaiter(this, void 0, void 0, function* () { if (type == null) { throw new TypeError('type can not be null or undefined'); } if (filePath == null) { throw new TypeError('filePath can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId }; let queryValues = { type: type, filePath: filePath, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "67eb3f92-6c97-4fd9-8b63-6cbdc7e526ea", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestLogStoreEndpointDetails, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Create empty file for a run and Get Sas uri for the file * * @param {string} project - Project ID or project name * @param {number} runId - Id of the run to get endpoint details * @param {Contracts.TestLogStoreOperationType} testLogStoreOperationType - Type of operation to perform using sas uri * @param {string} filePath - file path to create an empty file * @param {Contracts.TestLogType} type - Default is GeneralAttachment, type of empty file to be created */ testLogStoreEndpointDetailsForRun(project, runId, testLogStoreOperationType, filePath, type) { return __awaiter(this, void 0, void 0, function* () { if (testLogStoreOperationType == null) { throw new TypeError('testLogStoreOperationType can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId }; let queryValues = { testLogStoreOperationType: testLogStoreOperationType, filePath: filePath, type: type, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "67eb3f92-6c97-4fd9-8b63-6cbdc7e526ea", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, null, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestLogStoreEndpointDetails, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Retrieves Test runs associated to a session * * @param {string} project - Project ID or project name * @param {number} sessionId - Id of TestResults session to obtain Test Runs for. */ getTestRunsBySessionId(project, sessionId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, sessionId: sessionId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "6efc2c12-d4bf-4e86-ae37-b502e57a84c7", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, null, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Creates TestResultsSession object in TCM data store * * @param {Contracts.TestResultsSession} session - Received session object. * @param {string} project - Project ID or project name */ createTestSession(session, project) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "531e61ce-580d-4962-8591-0b2942b6bf78", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, session, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Retrieves TestResultsSession metadata object in TCM data store * * @param {string} project - Project ID or project name * @param {number} buildId */ getTestSession(project, buildId) { return __awaiter(this, void 0, void 0, function* () { if (buildId == null) { throw new TypeError('buildId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { buildId: buildId, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "531e61ce-580d-4962-8591-0b2942b6bf78", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestResultsSession, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Retrieves TestResultsSession Layout object in TCM data store * * @param {string} project - Project ID or project name * @param {string} sessionId */ getTestSessionLayout(project, sessionId) { return __awaiter(this, void 0, void 0, function* () { if (sessionId == null) { throw new TypeError('sessionId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { sessionId: sessionId, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "531e61ce-580d-4962-8591-0b2942b6bf78", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, null, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Creates Environment object in TCM data store * * @param {Contracts.TestSessionEnvironment[]} environments - Received Environment object. * @param {string} project - Project ID or project name */ createEnvironment(environments, project) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "f9c2e9e4-9c9a-4c1d-9a7d-2b4c8a6f0d5f", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, environments, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Creates Notification object in TCM data store for a given session * * @param {Contracts.TestSessionNotification[]} notifications - Notification(s) to add for the specified sessionId * @param {string} project - Project ID or project name * @param {number} sessionId - ID of Session to add Notification */ createNotification(notifications, project, sessionId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, sessionId: sessionId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "ebff1c56-2188-4082-9d0e-1838a396f0c8", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, notifications, options); let ret = this.formatResponse(res.result, null, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Retrieves TestResultsSession Notification objects in TCM data store * * @param {string} project - Project ID or project name * @param {number} sessionId - Id of TestResults session to obtain Notifications for. */ getSessionNotifications(project, sessionId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, sessionId: sessionId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "ebff1c56-2188-4082-9d0e-1838a396f0c8", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, null, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Add Test Results to test run session * * @param {Contracts.TestCaseResult[]} results * @param {string} project - Project ID or project name * @param {number} runId - RunId of test run */ addTestResultsToTestRunSession(results, project, runId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "ee6d95bf-7506-4c47-8100-9fed82cdc2f7", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, results, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestCaseResult, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {number} runId * @param {Contracts.ResultDetails} detailsToInclude * @param {number} skip * @param {number} top * @param {Contracts.TestOutcome[]} outcomes * @param {boolean} newTestsOnly */ getTestSessionResults(project, runId, detailsToInclude, skip, top, outcomes, newTestsOnly) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId }; let queryValues = { detailsToInclude: detailsToInclude, '$skip': skip, '$top': top, outcomes: outcomes && outcomes.join(","), '$newTestsOnly': newTestsOnly, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "ee6d95bf-7506-4c47-8100-9fed82cdc2f7", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.TestCaseResult, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Creates TestResultsMRX objects in TCM data store for existing test results * * @param {Contracts.TestCaseResult[]} results - Results object with only test results MRX properties and existing testResultId * @param {string} project - Project ID or project name * @param {number} runId - RunId of test run */ updateTestResultsToTestRunSession(results, project, runId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "ee6d95bf-7506-4c47-8100-9fed82cdc2f7", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.update(url, results, options); let ret = this.formatResponse(res.result, null, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {Contracts.TestSettings} testSettings * @param {string} project - Project ID or project name */ createTestSettings(testSettings, project) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "930bad47-f826-4099-9597-f44d0a9c735c", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, testSettings, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {number} testSettingsId */ deleteTestSettings(project, testSettingsId) { return __awaiter(this, void 0, void 0, function* () { if (testSettingsId == null) { throw new TypeError('testSettingsId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { testSettingsId: testSettingsId, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "930bad47-f826-4099-9597-f44d0a9c735c", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.del(url, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {number} testSettingsId */ getTestSettingsById(project, testSettingsId) { return __awaiter(this, void 0, void 0, function* () { if (testSettingsId == null) { throw new TypeError('testSettingsId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { testSettingsId: testSettingsId, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "testresults", "930bad47-f826-4099-9597-f44d0a9c735c", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {Contracts.WorkItemToTestLinks} workItemToTestLinks * @param {string} project - Project ID or project name */ addWorkItemToTestLinks(workItemToTestLinks, project) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.2", "testresults", "4e3abe63-ca46-4fe0-98b2-363f7ec7aa5f", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, workItemToTestLinks, options); let ret = this.formatResponse(res.result, Contracts.TypeInfo.WorkItemToTestLinks, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {string} testName * @param {number} workItemId */ deleteTestMethodToWorkItemLink(project, testName, workItemId) { return __awaiter(this, void 0, void 0, function* () { if (testName == null) { throw new TypeError('testName can not be null or undefined'); } if (workItemId == null) { throw new TypeError('workItemId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { testName: testName, workItemId: workItemId, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.2", "testresults", "cbd50bd7-f7ed-4e35-b127-4408ae6bfa2c", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.del(url, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {string} testName */ queryTestMethodLinkedWorkItems(project, testName) { return __awaiter(this, void 0, void 0, function* () { if (testName == null) { throw new TypeError('testName can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { testName: testName, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.2", "testresults", "cbd50bd7-f7ed-4e35-b127-4408ae6bfa2c", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, null, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {number} runId * @param {number} testCaseResultId */ getTestResultWorkItemsById(project, runId, testCaseResultId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, runId: runId, testCaseResultId: testCaseResultId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.2", "testresults", "3d032fd6-e7a0-468b-b105-75d206f99aad", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, null, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Query Test Result WorkItems based on filter * * @param {string} project - Project ID or project name * @param {string} workItemCategory - can take values Microsoft.BugCategory or all(for getting all workitems) * @param {string} automatedTestName * @param {number} testCaseId * @param {Date} maxCompleteDate * @param {number} days * @param {number} workItemCount */ queryTestResultWorkItems(project, workItemCategory, automatedTestName, testCaseId, maxCompleteDate, days, workItemCount) { return __awaiter(this, void 0, void 0, function* () { if (workItemCategory == null) { throw new TypeError('workItemCategory can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { workItemCategory: workItemCategory, automatedTestName: automatedTestName, testCaseId: testCaseId, maxCompleteDate: maxCompleteDate, days: days, '$workItemCount': workItemCount, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.2", "testresults", "f7401a26-331b-44fe-a470-f7ed35138e4a", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, null, true); resolve(ret); } catch (err) { reject(err); } })); }); } } exports.TestResultsApi = TestResultsApi; TestResultsApi.RESOURCE_AREA_ID = "c83eaf52-edf3-4034-ae11-17d38f25404c";