@elisra-devops/docgen-data-provider 1.2.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -97,8 +97,9 @@ type BugRelation = {
97
97
  export declare function createRequirementRelation(id: string, title: string, customerId?: string): RequirementRelation;
98
98
  export declare function createBugRelation(id: string, title: string, severity?: string): BugRelation;
99
99
  export declare class TestSteps {
100
- stepId: number;
101
- action: String;
102
- expected: String;
100
+ stepId: string;
101
+ stepPosition: string;
102
+ action: string;
103
+ expected: string;
103
104
  }
104
105
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"tfs-data.js","sourceRoot":"","sources":["../../src/models/tfs-data.ts"],"names":[],"mappings":";;;AA0JA,8DAMC;AAED,8CAEC;AApKD,MAAa,aAAa;CAGzB;AAHD,sCAGC;AAED,MAAa,KAAK;IAAlB;QAIE,YAAO,GAAa,IAAI,KAAK,EAAU,CAAC;QACxC,qDAAqD;QACrD,cAAS,GAAe,IAAI,KAAK,EAAY,CAAC;IAChD,CAAC;CAAA;AAPD,sBAOC;AACD,MAAM,SAAS;IAAf;QAIE,YAAO,GAAa,IAAI,KAAK,EAAU,CAAC;QACxC,qDAAqD;QACrD,cAAS,GAAuB,IAAI,KAAK,EAAoB,CAAC;IAChE,CAAC;CAAA;AAED,MAAa,MAAM;CAIlB;AAJD,wBAIC;AAED,MAAM,UAAU;CAGf;AAED,MAAM,KAAK;CAIV;AAED,MAAa,QAAQ;IAArB;QAKE,WAAM,GAAW,CAAC,CAAC;IAGrB,CAAC;CAAA;AARD,4BAQC;AACD,MAAa,KAAK;CAGjB;AAHD,sBAGC;AACD,IAAK,eAGJ;AAHD,WAAK,eAAe;IAClB,6DAAY,CAAA;IACZ,qEAAgB,CAAA;AAClB,CAAC,EAHI,eAAe,KAAf,eAAe,QAGnB;AACD,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,0BAAa,CAAA;IACb,0BAAa,CAAA;IACb,8BAAiB,CAAA;AACnB,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB;AAED,MAAM,gBAAgB;CAIrB;AAED,MAAM,YAAY;CAGjB;AAED,MAAM,MAAM;CAGX;AAED,MAAM,MAAM;CAGX;AA0CD,MAAa,QAAQ;IAUnB;QACE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;CACF;AAbD,4BAaC;AAkBD,SAAgB,yBAAyB,CACvC,EAAU,EACV,KAAa,EACb,UAAmB;IAEnB,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AACxD,CAAC;AAED,SAAgB,iBAAiB,CAAC,EAAU,EAAE,KAAa,EAAE,QAAiB;IAC5E,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC9C,CAAC;AAED,MAAa,SAAS;CAIrB;AAJD,8BAIC"}
1
+ {"version":3,"file":"tfs-data.js","sourceRoot":"","sources":["../../src/models/tfs-data.ts"],"names":[],"mappings":";;;AA0JA,8DAMC;AAED,8CAEC;AApKD,MAAa,aAAa;CAGzB;AAHD,sCAGC;AAED,MAAa,KAAK;IAAlB;QAIE,YAAO,GAAa,IAAI,KAAK,EAAU,CAAC;QACxC,qDAAqD;QACrD,cAAS,GAAe,IAAI,KAAK,EAAY,CAAC;IAChD,CAAC;CAAA;AAPD,sBAOC;AACD,MAAM,SAAS;IAAf;QAIE,YAAO,GAAa,IAAI,KAAK,EAAU,CAAC;QACxC,qDAAqD;QACrD,cAAS,GAAuB,IAAI,KAAK,EAAoB,CAAC;IAChE,CAAC;CAAA;AAED,MAAa,MAAM;CAIlB;AAJD,wBAIC;AAED,MAAM,UAAU;CAGf;AAED,MAAM,KAAK;CAIV;AAED,MAAa,QAAQ;IAArB;QAKE,WAAM,GAAW,CAAC,CAAC;IAGrB,CAAC;CAAA;AARD,4BAQC;AACD,MAAa,KAAK;CAGjB;AAHD,sBAGC;AACD,IAAK,eAGJ;AAHD,WAAK,eAAe;IAClB,6DAAY,CAAA;IACZ,qEAAgB,CAAA;AAClB,CAAC,EAHI,eAAe,KAAf,eAAe,QAGnB;AACD,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,0BAAa,CAAA;IACb,0BAAa,CAAA;IACb,8BAAiB,CAAA;AACnB,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB;AAED,MAAM,gBAAgB;CAIrB;AAED,MAAM,YAAY;CAGjB;AAED,MAAM,MAAM;CAGX;AAED,MAAM,MAAM;CAGX;AA0CD,MAAa,QAAQ;IAUnB;QACE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;CACF;AAbD,4BAaC;AAkBD,SAAgB,yBAAyB,CACvC,EAAU,EACV,KAAa,EACb,UAAmB;IAEnB,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AACxD,CAAC;AAED,SAAgB,iBAAiB,CAAC,EAAU,EAAE,KAAa,EAAE,QAAiB;IAC5E,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC9C,CAAC;AAED,MAAa,SAAS;CAKrB;AALD,8BAKC"}
@@ -1,6 +1,7 @@
1
1
  export default class ResultDataProvider {
2
2
  orgUrl: string;
3
3
  token: string;
4
+ private testStepParserHelper;
4
5
  constructor(orgUrl: string, token: string);
5
6
  /**
6
7
  * Retrieves test suites by test plan ID and processes them into a flat structure with hierarchy names.
@@ -42,10 +43,6 @@ export default class ResultDataProvider {
42
43
  * Converts run status from API format to a more readable format.
43
44
  */
44
45
  private convertRunStatus;
45
- /**
46
- * Parses test steps from XML format into a structured array.
47
- */
48
- private parseTestSteps;
49
46
  /**
50
47
  * Aligns test steps with their corresponding iterations.
51
48
  */
@@ -65,6 +62,7 @@ export default class ResultDataProvider {
65
62
  * Fetches result data for all test points within the given test data, sequentially to avoid context-related errors.
66
63
  */
67
64
  private fetchAllResultData;
65
+ private compareActionResults;
68
66
  /**
69
67
  * Fetches result Data data for a specific test point.
70
68
  */
@@ -12,15 +12,31 @@ var __rest = (this && this.__rest) || function (s, e) {
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
14
  const tfs_1 = require("../helpers/tfs");
15
- const tfs_data_1 = require("../models/tfs-data");
16
- const xml2js = require("xml2js");
17
15
  const logger_1 = require("../utils/logger");
16
+ const testStepParserHelper_1 = require("../utils/testStepParserHelper");
18
17
  class ResultDataProvider {
19
18
  constructor(orgUrl, token) {
20
19
  this.orgUrl = '';
21
20
  this.token = '';
21
+ //Sorting step positions
22
+ this.compareActionResults = (a, b) => {
23
+ const aParts = a.split('.').map(Number);
24
+ const bParts = b.split('.').map(Number);
25
+ const maxLength = Math.max(aParts.length, bParts.length);
26
+ for (let i = 0; i < maxLength; i++) {
27
+ const aNum = aParts[i] || 0; // Default to 0 if undefined
28
+ const bNum = bParts[i] || 0;
29
+ if (aNum > bNum)
30
+ return 1;
31
+ if (aNum < bNum)
32
+ return -1;
33
+ // If equal, continue to next segment
34
+ }
35
+ return 0; // Versions are equal
36
+ };
22
37
  this.orgUrl = orgUrl;
23
38
  this.token = token;
39
+ this.testStepParserHelper = new testStepParserHelper_1.default(orgUrl, token);
24
40
  }
25
41
  /**
26
42
  * Retrieves test suites by test plan ID and processes them into a flat structure with hierarchy names.
@@ -173,37 +189,10 @@ class ResultDataProvider {
173
189
  return 'Not Run';
174
190
  }
175
191
  }
176
- /**
177
- * Parses test steps from XML format into a structured array.
178
- */
179
- parseTestSteps(xmlSteps) {
180
- const stepsList = [];
181
- xml2js.parseString(xmlSteps, { explicitArray: false }, (err, result) => {
182
- var _a, _b, _c, _d, _e, _f;
183
- if (err) {
184
- logger_1.default.warn('Failed to parse XML test steps.');
185
- return;
186
- }
187
- if (result.steps === undefined || parseInt(result.steps.$.last) === 0) {
188
- return;
189
- }
190
- const stepsArray = Array.isArray((_a = result.steps) === null || _a === void 0 ? void 0 : _a.step) ? result.steps.step : [(_b = result.steps) === null || _b === void 0 ? void 0 : _b.step];
191
- for (let i = 0; i < stepsArray.length; i++) {
192
- const stepObj = stepsArray[i];
193
- const step = new tfs_data_1.TestSteps();
194
- step.stepId = Number(stepObj.$.id);
195
- step.action = ((_d = (_c = stepObj.parameterizedString) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d._) || '';
196
- step.expected = ((_f = (_e = stepObj.parameterizedString) === null || _e === void 0 ? void 0 : _e[1]) === null || _f === void 0 ? void 0 : _f._) || '';
197
- stepsList.push(step);
198
- }
199
- });
200
- return { stepsList };
201
- }
202
192
  /**
203
193
  * Aligns test steps with their corresponding iterations.
204
194
  */
205
195
  alignStepsWithIterations(testData, iterations) {
206
- var _a;
207
196
  const detailedResults = [];
208
197
  if (!iterations || (iterations === null || iterations === void 0 ? void 0 : iterations.length) === 0) {
209
198
  return detailedResults;
@@ -214,7 +203,6 @@ class ResultDataProvider {
214
203
  if (!testCase)
215
204
  continue;
216
205
  const iterationsMap = this.createIterationsMap(iterations, testCase.workItem.id);
217
- logger_1.default.debug(`parsing data for test case Id ${point.testCaseId}`);
218
206
  if (testCase.workItem.workItemFields.length === 0) {
219
207
  logger_1.default.warn(`Could not fetch the steps from WI ${JSON.stringify(testCase.workItem.id)}`);
220
208
  continue;
@@ -232,7 +220,7 @@ class ResultDataProvider {
232
220
  testCaseRevision: testCastObj.testCaseRevision,
233
221
  testName: point.testCaseName,
234
222
  stepIdentifier: stepIdentifier,
235
- stepNo: i + 1,
223
+ stepNo: actionResults[i].stepPosition,
236
224
  stepAction: actionResults[i].action,
237
225
  stepExpected: actionResults[i].expected,
238
226
  stepStatus: actionResults[i].outcome === 'Unspecified'
@@ -245,29 +233,6 @@ class ResultDataProvider {
245
233
  detailedResults.push(resultObj);
246
234
  }
247
235
  }
248
- else {
249
- const { stepsList: steps } = this.parseTestSteps(testCase.workItem.workItemFields[0]['Microsoft.VSTS.TCM.Steps']);
250
- if (steps.length === 0) {
251
- logger_1.default.warn(`No steps were found for WI ${(_a = testCase.workItem) === null || _a === void 0 ? void 0 : _a.id}`);
252
- continue;
253
- }
254
- //In case of not tested
255
- logger_1.default.debug(`Test case ${point.testCaseId} does not have a test result`);
256
- for (let i = 0; i < steps.length; i++) {
257
- const resultObj = {
258
- testId: point.testCaseId,
259
- testName: point.testCaseName,
260
- stepIdentifier: steps[i].stepId,
261
- testCaseRevision: undefined,
262
- stepNo: i + 1,
263
- stepAction: steps[i].action,
264
- stepExpected: steps[i].expected,
265
- stepStatus: 'Not Run',
266
- stepComments: 'No Result',
267
- };
268
- detailedResults.push(resultObj);
269
- }
270
- }
271
236
  }
272
237
  }
273
238
  return detailedResults;
@@ -330,23 +295,41 @@ class ResultDataProvider {
330
295
  async fetchResultData(projectName, testSuiteId, point) {
331
296
  const { lastRunId, lastResultId } = point;
332
297
  const resultData = await this.fetchResult(projectName, lastRunId.toString(), lastResultId.toString());
333
- logger_1.default.debug(`resultData is ${resultData ? 'available' : 'unavailable'} for run ${lastRunId} result ${lastResultId} `);
334
298
  const iteration = resultData.iterationDetails.length > 0
335
299
  ? resultData.iterationDetails[resultData.iterationDetails.length - 1]
336
300
  : undefined;
337
301
  if (resultData.stepsResultXml && iteration) {
338
- const { stepsList } = this.parseTestSteps(resultData.stepsResultXml);
302
+ const actionResultsWithSharedModels = iteration.actionResults.filter((result) => result.sharedStepModel);
303
+ const actionResultsWithNoSharedModels = iteration.actionResults.filter((result) => !result.sharedStepModel);
304
+ const sharedStepIdToRevisionLookupMap = new Map();
305
+ if ((actionResultsWithSharedModels === null || actionResultsWithSharedModels === void 0 ? void 0 : actionResultsWithSharedModels.length) > 0) {
306
+ actionResultsWithSharedModels.forEach((actionResult) => {
307
+ const { sharedStepModel } = actionResult;
308
+ sharedStepIdToRevisionLookupMap.set(Number(sharedStepModel.id), Number(sharedStepModel.revision));
309
+ });
310
+ }
311
+ const stepsList = await this.testStepParserHelper.parseTestSteps(resultData.stepsResultXml, sharedStepIdToRevisionLookupMap);
312
+ sharedStepIdToRevisionLookupMap.clear();
339
313
  const stepMap = new Map();
340
314
  for (const step of stepsList) {
341
315
  stepMap.set(step.stepId.toString(), step);
342
316
  }
343
317
  for (const actionResult of iteration.actionResults) {
318
+ //If the actions results holds a sharedStepModel then ignore it and continue
319
+ if (actionResult.sharedStepModel) {
320
+ continue;
321
+ }
344
322
  const step = stepMap.get(actionResult.stepIdentifier);
345
323
  if (step) {
324
+ actionResult.stepPosition = step.stepPosition;
346
325
  actionResult.action = step.action;
347
326
  actionResult.expected = step.expected;
348
327
  }
349
328
  }
329
+ //Sort by step position
330
+ iteration.actionResults = actionResultsWithNoSharedModels
331
+ .filter((result) => result.stepPosition)
332
+ .sort((a, b) => this.compareActionResults(a.stepPosition, b.stepPosition));
350
333
  }
351
334
  return (resultData === null || resultData === void 0 ? void 0 : resultData.testCase)
352
335
  ? {
@@ -615,19 +598,40 @@ class ResultDataProvider {
615
598
  return combinedResults; // Return whatever is computed even in case of error
616
599
  }
617
600
  }
601
+ // private mapStepResultsForExecutionAppendix(detailedResults: any[]): any {
602
+ // return detailedResults?.length > 0
603
+ // ? detailedResults.map((result) => {
604
+ // return {
605
+ // testId: result.testId,
606
+ // testCaseRevision: result.testCaseRevision || undefined,
607
+ // stepNo: result.stepNo,
608
+ // stepIdentifier: result.stepIdentifier,
609
+ // stepStatus: result.stepStatus,
610
+ // stepComments: result.stepComments,
611
+ // };
612
+ // })
613
+ // : [];
614
+ // }
618
615
  mapStepResultsForExecutionAppendix(detailedResults) {
619
- return (detailedResults === null || detailedResults === void 0 ? void 0 : detailedResults.length) > 0
620
- ? detailedResults.map((result) => {
621
- return {
622
- testId: result.testId,
623
- testCaseRevision: result.testCaseRevision || undefined,
624
- stepNo: result.stepNo,
625
- stepIdentifier: result.stepIdentifier,
626
- stepStatus: result.stepStatus,
627
- stepComments: result.stepComments,
628
- };
629
- })
630
- : [];
616
+ let testCaseIdToStepsMap = new Map();
617
+ detailedResults.forEach((result) => {
618
+ const testCaseRevision = result.testCaseRevision;
619
+ if (!testCaseIdToStepsMap.has(result.testId.toString())) {
620
+ testCaseIdToStepsMap.set(result.testId.toString(), { testCaseRevision, stepList: [] });
621
+ }
622
+ const value = testCaseIdToStepsMap.get(result.testId.toString());
623
+ const { stepList } = value;
624
+ stepList.push({
625
+ stepPosition: result.stepNo,
626
+ stepIdentifier: result.stepIdentifier,
627
+ action: result.stepAction,
628
+ expected: result.stepExpected,
629
+ stepStatus: result.stepStatus,
630
+ stepComments: result.stepComments,
631
+ });
632
+ testCaseIdToStepsMap.set(result.testId.toString(), Object.assign(Object.assign({}, testCaseRevision), { stepList: stepList }));
633
+ });
634
+ return testCaseIdToStepsMap;
631
635
  }
632
636
  /**
633
637
  * Calculates a summary of test group results.
@@ -1 +1 @@
1
- {"version":3,"file":"ResultDataProvider.js","sourceRoot":"","sources":["../../src/modules/ResultDataProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ResultDataProvider.js","sourceRoot":"","sources":["../../src/modules/ResultDataProvider.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { TestSteps } from '../models/tfs-data';
3
3
  export default class TestDataProvider {
4
4
  orgUrl: string;
5
5
  token: string;
6
+ private testStepParserHelper;
6
7
  constructor(orgUrl: string, token: string);
7
8
  GetTestSuiteByTestCase(testCaseId: string): Promise<any>;
8
9
  GetTestPlans(project: string): Promise<string>;
@@ -10,8 +11,8 @@ export default class TestDataProvider {
10
11
  GetTestSuitesForPlan(project: string, planid: string): Promise<any>;
11
12
  GetTestSuitesByPlan(project: string, planId: string, recursive: boolean): Promise<any>;
12
13
  GetTestSuiteById(project: string, planId: string, suiteId: string, recursive: boolean): Promise<any>;
13
- GetTestCasesBySuites(project: string, planId: string, suiteId: string, recursiv: boolean, includeRequirements: boolean, CustomerRequirementId: boolean, includeBugs: boolean, includeSeverity: boolean, stepResultDetails?: any[]): Promise<Array<any>>;
14
- StructureTestCase(project: string, testCases: any, suite: suiteData, includeRequirements: boolean, CustomerRequirementId: boolean, includeBugs: boolean, includeSeverity: boolean, stepResultDetails?: any[]): Promise<Array<any>>;
14
+ GetTestCasesBySuites(project: string, planId: string, suiteId: string, recursiv: boolean, includeRequirements: boolean, CustomerRequirementId: boolean, includeBugs: boolean, includeSeverity: boolean, stepResultDetailsMap?: Map<string, any>): Promise<any>;
15
+ StructureTestCase(project: string, testCases: any, suite: suiteData, includeRequirements: boolean, CustomerRequirementId: boolean, includeBugs: boolean, includeSeverity: boolean, requirementToTestCaseTraceMap: Map<string, string[]>, testCaseToRequirementsTraceMap: Map<string, string[]>, stepResultDetailsMap?: Map<string, any>): Promise<Array<any>>;
15
16
  private createBugRelation;
16
17
  private createNewRequirement;
17
18
  ParseSteps(steps: string): TestSteps[];
@@ -23,4 +24,5 @@ export default class TestDataProvider {
23
24
  UploadTestAttachment(runID: string, projectName: string, stream: any, fileName: string, comment: string, attachmentType: string): Promise<any>;
24
25
  GetTestRunById(projectName: string, runId: string): Promise<any>;
25
26
  GetTestPointByTestCaseId(projectName: string, testCaseId: string): Promise<any>;
27
+ private addToMap;
26
28
  }
@@ -6,12 +6,21 @@ const tfs_data_1 = require("../models/tfs-data");
6
6
  const tfs_data_2 = require("../models/tfs-data");
7
7
  const xml2js = require("xml2js");
8
8
  const logger_1 = require("../utils/logger");
9
+ const testStepParserHelper_1 = require("../utils/testStepParserHelper");
9
10
  class TestDataProvider {
10
11
  constructor(orgUrl, token) {
11
12
  this.orgUrl = '';
12
13
  this.token = '';
14
+ this.addToMap = (map, key, value) => {
15
+ var _a;
16
+ if (!map.has(key)) {
17
+ map.set(key, []);
18
+ }
19
+ (_a = map.get(key)) === null || _a === void 0 ? void 0 : _a.push(value);
20
+ };
13
21
  this.orgUrl = orgUrl;
14
22
  this.token = token;
23
+ this.testStepParserHelper = new testStepParserHelper_1.default(orgUrl, token);
15
24
  }
16
25
  async GetTestSuiteByTestCase(testCaseId) {
17
26
  let url = `${this.orgUrl}/_apis/testplan/suites?testCaseId=${testCaseId}`;
@@ -60,18 +69,20 @@ class TestDataProvider {
60
69
  return dataSuites;
61
70
  }
62
71
  //gets all testcase under test suite acording to recursive flag
63
- async GetTestCasesBySuites(project, planId, suiteId, recursiv, includeRequirements, CustomerRequirementId, includeBugs, includeSeverity, stepResultDetails) {
72
+ async GetTestCasesBySuites(project, planId, suiteId, recursiv, includeRequirements, CustomerRequirementId, includeBugs, includeSeverity, stepResultDetailsMap) {
64
73
  let testCasesList = new Array();
74
+ const requirementToTestCaseTraceMap = new Map();
75
+ const testCaseToRequirementsTraceMap = new Map();
65
76
  let suitesTestCasesList = await this.GetTestSuiteById(project, planId, suiteId, recursiv);
66
77
  for (let i = 0; i < suitesTestCasesList.length; i++) {
67
78
  let testCases = await this.GetTestCases(project, planId, suitesTestCasesList[i].id);
68
- let testCseseWithSteps = await this.StructureTestCase(project, testCases, suitesTestCasesList[i], includeRequirements, CustomerRequirementId, includeBugs, includeSeverity, stepResultDetails);
79
+ let testCseseWithSteps = await this.StructureTestCase(project, testCases, suitesTestCasesList[i], includeRequirements, CustomerRequirementId, includeBugs, includeSeverity, requirementToTestCaseTraceMap, testCaseToRequirementsTraceMap, stepResultDetailsMap);
69
80
  if (testCseseWithSteps.length > 0)
70
81
  testCasesList = [...testCasesList, ...testCseseWithSteps];
71
82
  }
72
- return testCasesList;
83
+ return { testCasesList, requirementToTestCaseTraceMap, testCaseToRequirementsTraceMap };
73
84
  }
74
- async StructureTestCase(project, testCases, suite, includeRequirements, CustomerRequirementId, includeBugs, includeSeverity, stepResultDetails) {
85
+ async StructureTestCase(project, testCases, suite, includeRequirements, CustomerRequirementId, includeBugs, includeSeverity, requirementToTestCaseTraceMap, testCaseToRequirementsTraceMap, stepResultDetailsMap) {
75
86
  let url = this.orgUrl + project + '/_workitems/edit/';
76
87
  let testCasesUrlList = new Array();
77
88
  logger_1.default.debug(`Trying to structure Test case for ${project} suite: ${suite.id}:${suite.name}`);
@@ -81,8 +92,7 @@ class TestDataProvider {
81
92
  }
82
93
  for (let i = 0; i < testCases.count; i++) {
83
94
  try {
84
- let stepDetailObject = (stepResultDetails === null || stepResultDetails === void 0 ? void 0 : stepResultDetails.find((result) => result.testId === Number(testCases.value[i].testCase.id))) ||
85
- undefined;
95
+ let stepDetailObject = (stepResultDetailsMap === null || stepResultDetailsMap === void 0 ? void 0 : stepResultDetailsMap.get(testCases.value[i].testCase.id.toString())) || undefined;
86
96
  let newurl = !(stepDetailObject === null || stepDetailObject === void 0 ? void 0 : stepDetailObject.testCaseRevision)
87
97
  ? testCases.value[i].testCase.url + '?$expand=All'
88
98
  : `${testCases.value[i].testCase.url}/revisions/${stepDetailObject.testCaseRevision}?$expand=All`;
@@ -95,21 +105,35 @@ class TestDataProvider {
95
105
  //testCase.steps = test.fields["Microsoft.VSTS.TCM.Steps"];
96
106
  testCase.id = test.id;
97
107
  testCase.suit = suite.id;
98
- if (test.fields['Microsoft.VSTS.TCM.Steps'] != null) {
99
- let steps = this.ParseSteps(test.fields['Microsoft.VSTS.TCM.Steps']);
108
+ if (!stepDetailObject && test.fields['Microsoft.VSTS.TCM.Steps'] != null) {
109
+ let steps = await this.testStepParserHelper.parseTestSteps(test.fields['Microsoft.VSTS.TCM.Steps'], new Map());
100
110
  testCase.steps = steps;
111
+ //In case its already parsed during the STR
112
+ }
113
+ else if (stepDetailObject) {
114
+ testCase.steps = stepDetailObject.stepList;
101
115
  }
102
- if ((includeBugs || includeRequirements) && test.relations) {
116
+ if (test.relations) {
103
117
  for (const relation of test.relations) {
104
118
  // Only proceed if the URL contains 'workItems'
105
119
  if (relation.url.includes('/workItems/')) {
106
120
  try {
107
121
  let relatedItemContent = await tfs_1.TFSServices.getItemContent(relation.url, this.token);
108
122
  // Check if the WorkItemType is "Requirement" before adding to relations
109
- if (includeRequirements &&
110
- relatedItemContent.fields['System.WorkItemType'] === 'Requirement') {
123
+ if (relatedItemContent.fields['System.WorkItemType'] === 'Requirement') {
111
124
  const newRequirementRelation = this.createNewRequirement(CustomerRequirementId, relatedItemContent);
112
- testCase.relations.push(newRequirementRelation);
125
+ const stringifiedTestCase = JSON.stringify({
126
+ id: testCase.id,
127
+ title: testCase.title,
128
+ });
129
+ const stringifiedRequirement = JSON.stringify(newRequirementRelation);
130
+ // Add the test case to the requirement-to-test-case trace map
131
+ this.addToMap(requirementToTestCaseTraceMap, stringifiedRequirement, stringifiedTestCase);
132
+ // Add the requirement to the test-case-to-requirements trace map
133
+ this.addToMap(testCaseToRequirementsTraceMap, stringifiedTestCase, stringifiedRequirement);
134
+ if (includeRequirements) {
135
+ testCase.relations.push(newRequirementRelation);
136
+ }
113
137
  }
114
138
  // Check if the WorkItemType is "Requirement" before adding to relations
115
139
  if (includeBugs && relatedItemContent.fields['System.WorkItemType'] === 'Bug') {
@@ -1 +1 @@
1
- {"version":3,"file":"TestDataProvider.js","sourceRoot":"","sources":["../../src/modules/TestDataProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TestDataProvider.js","sourceRoot":"","sources":["../../src/modules/TestDataProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { TestSteps } from '../models/tfs-data';
2
+ export default class TestStepParserHelper {
3
+ private orgUrl;
4
+ private token;
5
+ constructor(orgUrl: string, token: string);
6
+ private extractStepData;
7
+ private fetchSharedSteps;
8
+ private processCompref;
9
+ private processSteps;
10
+ parseTestSteps(xmlSteps: string, sharedStepIdToRevisionLookupMap: Map<number, number>, level?: string, parentStepId?: string): Promise<TestSteps[]>;
11
+ }
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tfs_1 = require("../helpers/tfs");
4
+ const tfs_data_1 = require("../models/tfs-data");
5
+ const xml2js = require("xml2js");
6
+ const logger_1 = require("./logger");
7
+ class TestStepParserHelper {
8
+ constructor(orgUrl, token) {
9
+ this.orgUrl = orgUrl;
10
+ this.token = token;
11
+ }
12
+ extractStepData(stepNode, stepPosition, parentStepId = '') {
13
+ var _a, _b, _c, _d;
14
+ const step = new tfs_data_1.TestSteps();
15
+ step.stepId = parentStepId === '' ? stepNode.$.id : `${parentStepId};${stepNode.$.id}`;
16
+ step.stepPosition = stepPosition;
17
+ step.action = ((_b = (_a = stepNode.parameterizedString) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b._) || '';
18
+ step.expected = ((_d = (_c = stepNode.parameterizedString) === null || _c === void 0 ? void 0 : _c[1]) === null || _d === void 0 ? void 0 : _d._) || '';
19
+ return step;
20
+ }
21
+ async fetchSharedSteps(sharedStepId, sharedStepIdToRevisionLookupMap, parentStepPosition, parentStepId = '') {
22
+ try {
23
+ let sharedStepsList = [];
24
+ const revision = sharedStepIdToRevisionLookupMap.get(Number(sharedStepId));
25
+ const wiUrl = revision
26
+ ? `${this.orgUrl}/_apis/wit/workitems/${sharedStepId}/revisions/${revision}`
27
+ : `${this.orgUrl}/_apis/wit/workitems/${sharedStepId}`;
28
+ const sharedStepWI = await tfs_1.TFSServices.getItemContent(wiUrl, this.token);
29
+ const stepsXML = (sharedStepWI === null || sharedStepWI === void 0 ? void 0 : sharedStepWI.fields['Microsoft.VSTS.TCM.Steps']) || null;
30
+ if (stepsXML) {
31
+ const stepsList = await this.parseTestSteps(stepsXML, sharedStepIdToRevisionLookupMap, `${parentStepPosition}.`, parentStepId);
32
+ sharedStepsList = stepsList;
33
+ }
34
+ return sharedStepsList;
35
+ }
36
+ catch (err) {
37
+ const errorMsg = `failed to fetch shared step WI: ${err.message}`;
38
+ logger_1.default.error(errorMsg);
39
+ throw new Error(errorMsg);
40
+ }
41
+ }
42
+ async processCompref(comprefNode, sharedStepIdToRevisionLookupMap, stepPosition, parentStepId = '') {
43
+ const stepList = [];
44
+ if (comprefNode.$ && comprefNode.$.ref) {
45
+ //Nested Steps
46
+ const sharedStepId = comprefNode.$.ref;
47
+ const comprefStepId = comprefNode.$.id;
48
+ //Fetch the shared step data using the ID
49
+ const sharedSteps = await this.fetchSharedSteps(sharedStepId, sharedStepIdToRevisionLookupMap, stepPosition, comprefStepId);
50
+ stepList.push(...sharedSteps);
51
+ }
52
+ // If 'compref' contains nested steps
53
+ if (comprefNode.children) {
54
+ for (const child of comprefNode.children) {
55
+ const nodeName = child['#name'];
56
+ const currentPosition = comprefNode.children.indexOf(child) + 1;
57
+ let currentPositionStr = '';
58
+ if (stepPosition.includes('.')) {
59
+ const positions = stepPosition.split('.');
60
+ const lastPosition = Number(positions.pop());
61
+ positions.push(`${currentPosition + lastPosition}`);
62
+ currentPositionStr = positions.join('.');
63
+ }
64
+ else {
65
+ currentPositionStr = `${currentPosition + Number(stepPosition)}`;
66
+ }
67
+ if (nodeName === 'step') {
68
+ stepList.push(this.extractStepData(child, currentPositionStr, parentStepId));
69
+ }
70
+ else if (nodeName === 'compref') {
71
+ // Handle nested 'compref' elements recursively
72
+ const nestedSteps = await this.processCompref(child, sharedStepIdToRevisionLookupMap, currentPositionStr, parentStepId);
73
+ stepList.push(...nestedSteps);
74
+ }
75
+ }
76
+ }
77
+ return stepList;
78
+ }
79
+ async processSteps(parsedResultStepsXml, sharedStepIdToRevisionLookupMap, parentStepPosition, parentStepId = '') {
80
+ const stepsList = [];
81
+ const root = parsedResultStepsXml;
82
+ const children = root.children || [];
83
+ for (const child of children) {
84
+ const nodeName = child['#name'];
85
+ const currentStepPosition = children.indexOf(child) + 1;
86
+ if (nodeName === 'step') {
87
+ //Process a regular step
88
+ stepsList.push(this.extractStepData(child, `${parentStepPosition}${currentStepPosition}`, parentStepId));
89
+ }
90
+ else if (nodeName === 'compref') {
91
+ // Process shared steps
92
+ const sharedSteps = await this.processCompref(child, sharedStepIdToRevisionLookupMap, `${parentStepPosition}${currentStepPosition}`, parentStepId);
93
+ stepsList.push(...sharedSteps);
94
+ }
95
+ }
96
+ return stepsList;
97
+ }
98
+ async parseTestSteps(xmlSteps, sharedStepIdToRevisionLookupMap, level = '', parentStepId = '') {
99
+ try {
100
+ const result = await xml2js.parseStringPromise(xmlSteps, {
101
+ explicitChildren: true,
102
+ preserveChildrenOrder: true,
103
+ explicitArray: false, // Prevents unnecessary arrays
104
+ childkey: 'children', // Key to store child elements
105
+ });
106
+ const stepsList = await this.processSteps(result.steps, sharedStepIdToRevisionLookupMap, level, parentStepId);
107
+ return stepsList;
108
+ }
109
+ catch (err) {
110
+ logger_1.default.error('Failed to parse XML test steps.', err);
111
+ return [];
112
+ }
113
+ }
114
+ }
115
+ exports.default = TestStepParserHelper;
116
+ //# sourceMappingURL=testStepParserHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testStepParserHelper.js","sourceRoot":"","sources":["../../src/utils/testStepParserHelper.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elisra-devops/docgen-data-provider",
3
- "version": "1.2.0",
3
+ "version": "1.3.1",
4
4
  "description": "A document generator data provider, aimed to retrive data from azure devops",
5
5
  "repository": {
6
6
  "type": "git",
@@ -165,7 +165,8 @@ export function createBugRelation(id: string, title: string, severity?: string):
165
165
  }
166
166
 
167
167
  export class TestSteps {
168
- stepId: number;
169
- action: String;
170
- expected: String;
168
+ stepId: string;
169
+ stepPosition: string;
170
+ action: string;
171
+ expected: string;
171
172
  }
@@ -1,16 +1,17 @@
1
1
  import { TFSServices } from '../helpers/tfs';
2
- import { TestSteps } from '../models/tfs-data';
2
+ import { TestSteps, Workitem } from '../models/tfs-data';
3
3
  import * as xml2js from 'xml2js';
4
4
  import logger from '../utils/logger';
5
- import { error, log } from 'console';
5
+ import TestStepParserHelper from '../utils/testStepParserHelper';
6
6
 
7
7
  export default class ResultDataProvider {
8
8
  orgUrl: string = '';
9
9
  token: string = '';
10
-
10
+ private testStepParserHelper: TestStepParserHelper;
11
11
  constructor(orgUrl: string, token: string) {
12
12
  this.orgUrl = orgUrl;
13
13
  this.token = token;
14
+ this.testStepParserHelper = new TestStepParserHelper(orgUrl, token);
14
15
  }
15
16
 
16
17
  /**
@@ -198,34 +199,6 @@ export default class ResultDataProvider {
198
199
  }
199
200
  }
200
201
 
201
- /**
202
- * Parses test steps from XML format into a structured array.
203
- */
204
- private parseTestSteps(xmlSteps: string): { stepsList: TestSteps[] } {
205
- const stepsList: TestSteps[] = [];
206
-
207
- xml2js.parseString(xmlSteps, { explicitArray: false }, (err, result) => {
208
- if (err) {
209
- logger.warn('Failed to parse XML test steps.');
210
- return;
211
- }
212
-
213
- if (result.steps === undefined || parseInt(result.steps.$.last) === 0) {
214
- return;
215
- }
216
- const stepsArray = Array.isArray(result.steps?.step) ? result.steps.step : [result.steps?.step];
217
- for (let i = 0; i < stepsArray.length; i++) {
218
- const stepObj = stepsArray[i];
219
- const step = new TestSteps();
220
- step.stepId = Number(stepObj.$.id);
221
- step.action = stepObj.parameterizedString?.[0]?._ || '';
222
- step.expected = stepObj.parameterizedString?.[1]?._ || '';
223
- stepsList.push(step);
224
- }
225
- });
226
- return { stepsList };
227
- }
228
-
229
202
  /**
230
203
  * Aligns test steps with their corresponding iterations.
231
204
  */
@@ -240,9 +213,6 @@ export default class ResultDataProvider {
240
213
  const testCase = testItem.testCasesItems.find((tc: any) => tc.workItem.id === point.testCaseId);
241
214
  if (!testCase) continue;
242
215
  const iterationsMap = this.createIterationsMap(iterations, testCase.workItem.id);
243
-
244
- logger.debug(`parsing data for test case Id ${point.testCaseId}`);
245
-
246
216
  if (testCase.workItem.workItemFields.length === 0) {
247
217
  logger.warn(`Could not fetch the steps from WI ${JSON.stringify(testCase.workItem.id)}`);
248
218
  continue;
@@ -263,7 +233,7 @@ export default class ResultDataProvider {
263
233
  testCaseRevision: testCastObj.testCaseRevision,
264
234
  testName: point.testCaseName,
265
235
  stepIdentifier: stepIdentifier,
266
- stepNo: i + 1,
236
+ stepNo: actionResults[i].stepPosition,
267
237
  stepAction: actionResults[i].action,
268
238
  stepExpected: actionResults[i].expected,
269
239
  stepStatus:
@@ -275,31 +245,6 @@ export default class ResultDataProvider {
275
245
  stepComments: actionResults[i].errorMessage || '',
276
246
  };
277
247
 
278
- detailedResults.push(resultObj);
279
- }
280
- } else {
281
- const { stepsList: steps } = this.parseTestSteps(
282
- testCase.workItem.workItemFields[0]['Microsoft.VSTS.TCM.Steps']
283
- );
284
-
285
- if (steps.length === 0) {
286
- logger.warn(`No steps were found for WI ${testCase.workItem?.id}`);
287
- continue;
288
- }
289
- //In case of not tested
290
- logger.debug(`Test case ${point.testCaseId} does not have a test result`);
291
- for (let i = 0; i < steps.length; i++) {
292
- const resultObj = {
293
- testId: point.testCaseId,
294
- testName: point.testCaseName,
295
- stepIdentifier: steps[i].stepId,
296
- testCaseRevision: undefined,
297
- stepNo: i + 1,
298
- stepAction: steps[i].action,
299
- stepExpected: steps[i].expected,
300
- stepStatus: 'Not Run',
301
- stepComments: 'No Result',
302
- };
303
248
  detailedResults.push(resultObj);
304
249
  }
305
250
  }
@@ -374,22 +319,57 @@ export default class ResultDataProvider {
374
319
  return results;
375
320
  }
376
321
 
322
+ //Sorting step positions
323
+ private compareActionResults = (a: string, b: string) => {
324
+ const aParts = a.split('.').map(Number);
325
+ const bParts = b.split('.').map(Number);
326
+ const maxLength = Math.max(aParts.length, bParts.length);
327
+
328
+ for (let i = 0; i < maxLength; i++) {
329
+ const aNum = aParts[i] || 0; // Default to 0 if undefined
330
+ const bNum = bParts[i] || 0;
331
+
332
+ if (aNum > bNum) return 1;
333
+ if (aNum < bNum) return -1;
334
+ // If equal, continue to next segment
335
+ }
336
+
337
+ return 0; // Versions are equal
338
+ };
339
+
377
340
  /**
378
341
  * Fetches result Data data for a specific test point.
379
342
  */
380
343
  private async fetchResultData(projectName: string, testSuiteId: string, point: any) {
381
344
  const { lastRunId, lastResultId } = point;
382
345
  const resultData = await this.fetchResult(projectName, lastRunId.toString(), lastResultId.toString());
383
- logger.debug(
384
- `resultData is ${resultData ? 'available' : 'unavailable'} for run ${lastRunId} result ${lastResultId} `
385
- );
346
+
386
347
  const iteration =
387
348
  resultData.iterationDetails.length > 0
388
349
  ? resultData.iterationDetails[resultData.iterationDetails.length - 1]
389
350
  : undefined;
390
351
 
391
352
  if (resultData.stepsResultXml && iteration) {
392
- const { stepsList } = this.parseTestSteps(resultData.stepsResultXml);
353
+ const actionResultsWithSharedModels = iteration.actionResults.filter(
354
+ (result: any) => result.sharedStepModel
355
+ );
356
+ const actionResultsWithNoSharedModels = iteration.actionResults.filter(
357
+ (result: any) => !result.sharedStepModel
358
+ );
359
+ const sharedStepIdToRevisionLookupMap: Map<number, number> = new Map();
360
+
361
+ if (actionResultsWithSharedModels?.length > 0) {
362
+ actionResultsWithSharedModels.forEach((actionResult: any) => {
363
+ const { sharedStepModel } = actionResult;
364
+ sharedStepIdToRevisionLookupMap.set(Number(sharedStepModel.id), Number(sharedStepModel.revision));
365
+ });
366
+ }
367
+ const stepsList = await this.testStepParserHelper.parseTestSteps(
368
+ resultData.stepsResultXml,
369
+ sharedStepIdToRevisionLookupMap
370
+ );
371
+
372
+ sharedStepIdToRevisionLookupMap.clear();
393
373
 
394
374
  const stepMap = new Map<string, any>();
395
375
  for (const step of stepsList) {
@@ -397,12 +377,22 @@ export default class ResultDataProvider {
397
377
  }
398
378
 
399
379
  for (const actionResult of iteration.actionResults) {
380
+ //If the actions results holds a sharedStepModel then ignore it and continue
381
+ if (actionResult.sharedStepModel) {
382
+ continue;
383
+ }
384
+
400
385
  const step = stepMap.get(actionResult.stepIdentifier);
401
386
  if (step) {
387
+ actionResult.stepPosition = step.stepPosition;
402
388
  actionResult.action = step.action;
403
389
  actionResult.expected = step.expected;
404
390
  }
405
391
  }
392
+ //Sort by step position
393
+ iteration.actionResults = actionResultsWithNoSharedModels
394
+ .filter((result: any) => result.stepPosition)
395
+ .sort((a: any, b: any) => this.compareActionResults(a.stepPosition, b.stepPosition));
406
396
  }
407
397
  return resultData?.testCase
408
398
  ? {
@@ -749,19 +739,42 @@ export default class ResultDataProvider {
749
739
  }
750
740
  }
751
741
 
752
- private mapStepResultsForExecutionAppendix(detailedResults: any[]): any {
753
- return detailedResults?.length > 0
754
- ? detailedResults.map((result) => {
755
- return {
756
- testId: result.testId,
757
- testCaseRevision: result.testCaseRevision || undefined,
758
- stepNo: result.stepNo,
759
- stepIdentifier: result.stepIdentifier,
760
- stepStatus: result.stepStatus,
761
- stepComments: result.stepComments,
762
- };
763
- })
764
- : [];
742
+ // private mapStepResultsForExecutionAppendix(detailedResults: any[]): any {
743
+ // return detailedResults?.length > 0
744
+ // ? detailedResults.map((result) => {
745
+ // return {
746
+ // testId: result.testId,
747
+ // testCaseRevision: result.testCaseRevision || undefined,
748
+ // stepNo: result.stepNo,
749
+ // stepIdentifier: result.stepIdentifier,
750
+ // stepStatus: result.stepStatus,
751
+ // stepComments: result.stepComments,
752
+ // };
753
+ // })
754
+ // : [];
755
+ // }
756
+
757
+ private mapStepResultsForExecutionAppendix(detailedResults: any[]): Map<string, any> {
758
+ let testCaseIdToStepsMap: Map<string, any> = new Map();
759
+ detailedResults.forEach((result) => {
760
+ const testCaseRevision = result.testCaseRevision;
761
+ if (!testCaseIdToStepsMap.has(result.testId.toString())) {
762
+ testCaseIdToStepsMap.set(result.testId.toString(), { testCaseRevision, stepList: [] });
763
+ }
764
+ const value = testCaseIdToStepsMap.get(result.testId.toString());
765
+ const { stepList } = value;
766
+ stepList.push({
767
+ stepPosition: result.stepNo,
768
+ stepIdentifier: result.stepIdentifier,
769
+ action: result.stepAction,
770
+ expected: result.stepExpected,
771
+ stepStatus: result.stepStatus,
772
+ stepComments: result.stepComments,
773
+ });
774
+ testCaseIdToStepsMap.set(result.testId.toString(), { ...testCaseRevision, stepList: stepList });
775
+ });
776
+
777
+ return testCaseIdToStepsMap;
765
778
  }
766
779
 
767
780
  /**
@@ -10,14 +10,17 @@ import { TestCase } from '../models/tfs-data';
10
10
  import * as xml2js from 'xml2js';
11
11
 
12
12
  import logger from '../utils/logger';
13
+ import TestStepParserHelper from '../utils/testStepParserHelper';
13
14
 
14
15
  export default class TestDataProvider {
15
16
  orgUrl: string = '';
16
17
  token: string = '';
18
+ private testStepParserHelper: TestStepParserHelper;
17
19
 
18
20
  constructor(orgUrl: string, token: string) {
19
21
  this.orgUrl = orgUrl;
20
22
  this.token = token;
23
+ this.testStepParserHelper = new TestStepParserHelper(orgUrl, token);
21
24
  }
22
25
 
23
26
  async GetTestSuiteByTestCase(testCaseId: string): Promise<any> {
@@ -90,9 +93,11 @@ export default class TestDataProvider {
90
93
  CustomerRequirementId: boolean,
91
94
  includeBugs: boolean,
92
95
  includeSeverity: boolean,
93
- stepResultDetails?: any[]
94
- ): Promise<Array<any>> {
96
+ stepResultDetailsMap?: Map<string, any>
97
+ ): Promise<any> {
95
98
  let testCasesList: Array<any> = new Array<any>();
99
+ const requirementToTestCaseTraceMap: Map<string, string[]> = new Map();
100
+ const testCaseToRequirementsTraceMap: Map<string, string[]> = new Map();
96
101
  let suitesTestCasesList: Array<suiteData> = await this.GetTestSuiteById(
97
102
  project,
98
103
  planId,
@@ -109,11 +114,15 @@ export default class TestDataProvider {
109
114
  CustomerRequirementId,
110
115
  includeBugs,
111
116
  includeSeverity,
112
- stepResultDetails
117
+ requirementToTestCaseTraceMap,
118
+ testCaseToRequirementsTraceMap,
119
+ stepResultDetailsMap
113
120
  );
121
+
114
122
  if (testCseseWithSteps.length > 0) testCasesList = [...testCasesList, ...testCseseWithSteps];
115
123
  }
116
- return testCasesList;
124
+
125
+ return { testCasesList, requirementToTestCaseTraceMap, testCaseToRequirementsTraceMap };
117
126
  }
118
127
 
119
128
  async StructureTestCase(
@@ -124,7 +133,9 @@ export default class TestDataProvider {
124
133
  CustomerRequirementId: boolean,
125
134
  includeBugs: boolean,
126
135
  includeSeverity: boolean,
127
- stepResultDetails?: any[]
136
+ requirementToTestCaseTraceMap: Map<string, string[]>,
137
+ testCaseToRequirementsTraceMap: Map<string, string[]>,
138
+ stepResultDetailsMap?: Map<string, any>
128
139
  ): Promise<Array<any>> {
129
140
  let url = this.orgUrl + project + '/_workitems/edit/';
130
141
  let testCasesUrlList: Array<any> = new Array<any>();
@@ -137,8 +148,7 @@ export default class TestDataProvider {
137
148
  for (let i = 0; i < testCases.count; i++) {
138
149
  try {
139
150
  let stepDetailObject =
140
- stepResultDetails?.find((result) => result.testId === Number(testCases.value[i].testCase.id)) ||
141
- undefined;
151
+ stepResultDetailsMap?.get(testCases.value[i].testCase.id.toString()) || undefined;
142
152
 
143
153
  let newurl = !stepDetailObject?.testCaseRevision
144
154
  ? testCases.value[i].testCase.url + '?$expand=All'
@@ -153,26 +163,49 @@ export default class TestDataProvider {
153
163
  //testCase.steps = test.fields["Microsoft.VSTS.TCM.Steps"];
154
164
  testCase.id = test.id;
155
165
  testCase.suit = suite.id;
156
- if (test.fields['Microsoft.VSTS.TCM.Steps'] != null) {
157
- let steps: Array<TestSteps> = this.ParseSteps(test.fields['Microsoft.VSTS.TCM.Steps']);
166
+
167
+ if (!stepDetailObject && test.fields['Microsoft.VSTS.TCM.Steps'] != null) {
168
+ let steps = await this.testStepParserHelper.parseTestSteps(
169
+ test.fields['Microsoft.VSTS.TCM.Steps'],
170
+ new Map<number, number>()
171
+ );
158
172
  testCase.steps = steps;
173
+ //In case its already parsed during the STR
174
+ } else if (stepDetailObject) {
175
+ testCase.steps = stepDetailObject.stepList;
159
176
  }
160
- if ((includeBugs || includeRequirements) && test.relations) {
177
+ if (test.relations) {
161
178
  for (const relation of test.relations) {
162
179
  // Only proceed if the URL contains 'workItems'
163
180
  if (relation.url.includes('/workItems/')) {
164
181
  try {
165
182
  let relatedItemContent: any = await TFSServices.getItemContent(relation.url, this.token);
166
183
  // Check if the WorkItemType is "Requirement" before adding to relations
167
- if (
168
- includeRequirements &&
169
- relatedItemContent.fields['System.WorkItemType'] === 'Requirement'
170
- ) {
184
+ if (relatedItemContent.fields['System.WorkItemType'] === 'Requirement') {
171
185
  const newRequirementRelation = this.createNewRequirement(
172
186
  CustomerRequirementId,
173
187
  relatedItemContent
174
188
  );
175
- testCase.relations.push(newRequirementRelation);
189
+
190
+ const stringifiedTestCase = JSON.stringify({
191
+ id: testCase.id,
192
+ title: testCase.title,
193
+ });
194
+ const stringifiedRequirement = JSON.stringify(newRequirementRelation);
195
+
196
+ // Add the test case to the requirement-to-test-case trace map
197
+ this.addToMap(requirementToTestCaseTraceMap, stringifiedRequirement, stringifiedTestCase);
198
+
199
+ // Add the requirement to the test-case-to-requirements trace map
200
+ this.addToMap(
201
+ testCaseToRequirementsTraceMap,
202
+ stringifiedTestCase,
203
+ stringifiedRequirement
204
+ );
205
+
206
+ if (includeRequirements) {
207
+ testCase.relations.push(newRequirementRelation);
208
+ }
176
209
  }
177
210
 
178
211
  // Check if the WorkItemType is "Requirement" before adding to relations
@@ -401,4 +434,11 @@ export default class TestDataProvider {
401
434
  let res = await TFSServices.postRequest(url, this.token, 'Post', data, null);
402
435
  return res;
403
436
  }
437
+
438
+ private addToMap = (map: Map<string, string[]>, key: string, value: string) => {
439
+ if (!map.has(key)) {
440
+ map.set(key, []);
441
+ }
442
+ map.get(key)?.push(value);
443
+ };
404
444
  }
@@ -0,0 +1,165 @@
1
+ import { TFSServices } from '../helpers/tfs';
2
+ import { TestSteps, Workitem } from '../models/tfs-data';
3
+ import * as xml2js from 'xml2js';
4
+ import logger from './logger';
5
+
6
+ export default class TestStepParserHelper {
7
+ private orgUrl: string;
8
+ private token: string;
9
+
10
+ constructor(orgUrl: string, token: string) {
11
+ this.orgUrl = orgUrl;
12
+ this.token = token;
13
+ }
14
+
15
+ private extractStepData(stepNode: any, stepPosition: string, parentStepId: string = ''): TestSteps {
16
+ const step = new TestSteps();
17
+ step.stepId = parentStepId === '' ? stepNode.$.id : `${parentStepId};${stepNode.$.id}`;
18
+ step.stepPosition = stepPosition;
19
+ step.action = stepNode.parameterizedString?.[0]?._ || '';
20
+ step.expected = stepNode.parameterizedString?.[1]?._ || '';
21
+ return step;
22
+ }
23
+
24
+ private async fetchSharedSteps(
25
+ sharedStepId: string,
26
+ sharedStepIdToRevisionLookupMap: Map<number, number>,
27
+ parentStepPosition: string,
28
+ parentStepId: string = ''
29
+ ): Promise<TestSteps[]> {
30
+ try {
31
+ let sharedStepsList: TestSteps[] = [];
32
+ const revision = sharedStepIdToRevisionLookupMap.get(Number(sharedStepId));
33
+
34
+ const wiUrl = revision
35
+ ? `${this.orgUrl}/_apis/wit/workitems/${sharedStepId}/revisions/${revision}`
36
+ : `${this.orgUrl}/_apis/wit/workitems/${sharedStepId}`;
37
+ const sharedStepWI = await TFSServices.getItemContent(wiUrl, this.token);
38
+
39
+ const stepsXML = sharedStepWI?.fields['Microsoft.VSTS.TCM.Steps'] || null;
40
+ if (stepsXML) {
41
+ const stepsList = await this.parseTestSteps(
42
+ stepsXML,
43
+ sharedStepIdToRevisionLookupMap,
44
+ `${parentStepPosition}.`,
45
+ parentStepId
46
+ );
47
+ sharedStepsList = stepsList;
48
+ }
49
+ return sharedStepsList;
50
+ } catch (err: any) {
51
+ const errorMsg = `failed to fetch shared step WI: ${err.message}`;
52
+ logger.error(errorMsg);
53
+ throw new Error(errorMsg);
54
+ }
55
+ }
56
+
57
+ private async processCompref(
58
+ comprefNode: any,
59
+ sharedStepIdToRevisionLookupMap: Map<number, number>,
60
+ stepPosition: string,
61
+ parentStepId: string = ''
62
+ ): Promise<TestSteps[]> {
63
+ const stepList: TestSteps[] = [];
64
+ if (comprefNode.$ && comprefNode.$.ref) {
65
+ //Nested Steps
66
+ const sharedStepId = comprefNode.$.ref;
67
+ const comprefStepId = comprefNode.$.id;
68
+ //Fetch the shared step data using the ID
69
+ const sharedSteps = await this.fetchSharedSteps(
70
+ sharedStepId,
71
+ sharedStepIdToRevisionLookupMap,
72
+ stepPosition,
73
+ comprefStepId
74
+ );
75
+ stepList.push(...sharedSteps);
76
+ }
77
+ // If 'compref' contains nested steps
78
+ if (comprefNode.children) {
79
+ for (const child of comprefNode.children) {
80
+ const nodeName = child['#name'];
81
+ const currentPosition = comprefNode.children.indexOf(child) + 1;
82
+ let currentPositionStr = '';
83
+ if (stepPosition.includes('.')) {
84
+ const positions = stepPosition.split('.');
85
+ const lastPosition = Number(positions.pop());
86
+ positions.push(`${currentPosition + lastPosition}`);
87
+ currentPositionStr = positions.join('.');
88
+ } else {
89
+ currentPositionStr = `${currentPosition + Number(stepPosition)}`;
90
+ }
91
+ if (nodeName === 'step') {
92
+ stepList.push(this.extractStepData(child, currentPositionStr, parentStepId));
93
+ } else if (nodeName === 'compref') {
94
+ // Handle nested 'compref' elements recursively
95
+ const nestedSteps = await this.processCompref(
96
+ child,
97
+ sharedStepIdToRevisionLookupMap,
98
+ currentPositionStr,
99
+ parentStepId
100
+ );
101
+ stepList.push(...nestedSteps);
102
+ }
103
+ }
104
+ }
105
+ return stepList;
106
+ }
107
+
108
+ private async processSteps(
109
+ parsedResultStepsXml: any,
110
+ sharedStepIdToRevisionLookupMap: Map<number, number>,
111
+ parentStepPosition: string,
112
+ parentStepId: string = ''
113
+ ): Promise<TestSteps[]> {
114
+ const stepsList: TestSteps[] = [];
115
+ const root = parsedResultStepsXml;
116
+
117
+ const children: any[] = root.children || [];
118
+ for (const child of children) {
119
+ const nodeName = child['#name'];
120
+ const currentStepPosition = children.indexOf(child) + 1;
121
+ if (nodeName === 'step') {
122
+ //Process a regular step
123
+ stepsList.push(
124
+ this.extractStepData(child, `${parentStepPosition}${currentStepPosition}`, parentStepId)
125
+ );
126
+ } else if (nodeName === 'compref') {
127
+ // Process shared steps
128
+ const sharedSteps = await this.processCompref(
129
+ child,
130
+ sharedStepIdToRevisionLookupMap,
131
+ `${parentStepPosition}${currentStepPosition}`,
132
+ parentStepId
133
+ );
134
+ stepsList.push(...sharedSteps);
135
+ }
136
+ }
137
+ return stepsList;
138
+ }
139
+
140
+ public async parseTestSteps(
141
+ xmlSteps: string,
142
+ sharedStepIdToRevisionLookupMap: Map<number, number>,
143
+ level: string = '',
144
+ parentStepId: string = ''
145
+ ): Promise<TestSteps[]> {
146
+ try {
147
+ const result = await xml2js.parseStringPromise(xmlSteps, {
148
+ explicitChildren: true,
149
+ preserveChildrenOrder: true,
150
+ explicitArray: false, // Prevents unnecessary arrays
151
+ childkey: 'children', // Key to store child elements
152
+ });
153
+ const stepsList = await this.processSteps(
154
+ result.steps,
155
+ sharedStepIdToRevisionLookupMap,
156
+ level,
157
+ parentStepId
158
+ );
159
+ return stepsList;
160
+ } catch (err) {
161
+ logger.error('Failed to parse XML test steps.', err);
162
+ return [];
163
+ }
164
+ }
165
+ }