@elisra-devops/docgen-data-provider 1.46.0 → 1.48.0

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.
@@ -27,6 +27,9 @@ export declare class Trace {
27
27
  links: Array<Links>;
28
28
  }
29
29
  export declare class Helper {
30
+ static level: number;
31
+ static first: boolean;
32
+ static suitList: Array<suiteData>;
30
33
  /**
31
34
  * Finds test suites recursively starting from a given suite ID
32
35
  * @param planId - The test plan ID
@@ -35,31 +38,10 @@ export declare class Helper {
35
38
  * @param suits - Array of all test suites
36
39
  * @param foundId - Starting suite ID to search from
37
40
  * @param recursive - Whether to search recursively or just direct children
38
- * @param flatTreeByOneLevel - If true and there's only one level 1 suite with children, flatten the hierarchy by one level
41
+ * @param flatSuiteTestCases - If true and there's only one level 1 suite with children, flatten the hierarchy by one level
39
42
  * @returns Array of suiteData objects representing the hierarchy
40
43
  */
41
- static findSuitesRecursive(planId: string, url: string, project: string, suits: any[], foundId: string, recursive: boolean, flatTreeByOneLevel?: boolean): Array<suiteData>;
42
- /**
43
- * Recursively builds the suite hierarchy
44
- */
45
- private static buildSuiteHierarchy;
46
- /**
47
- * Creates a suiteData object from a suite
48
- */
49
- private static createSuiteData;
50
- /**
51
- * Determines if hierarchy should be flattened based on conditions:
52
- * - There is exactly one level 1 suite (direct child of root)
53
- * - That suite has children (level 2+ suites)
54
- */
55
- private static shouldFlattenHierarchy;
56
- /**
57
- * Flattens the hierarchy by one level:
58
- * - Removes the single level 1 suite
59
- * - Promotes all level 2+ suites up by one level
60
- * - Updates parentSuiteId of new level 1 suites to point to root
61
- */
62
- private static flattenHierarchyByOneLevel;
44
+ static findSuitesRecursive(planId: string, url: string, project: string, suits: any[], foundId: string, recursive: boolean, isTopLevel?: boolean): Array<suiteData>;
63
45
  static levelList: Array<Workitem>;
64
46
  static LevelBuilder(results: Query, foundId: string): Array<Workitem>;
65
47
  private static buildWorkItemHierarchy;
@@ -31,154 +31,58 @@ class Helper {
31
31
  * @param suits - Array of all test suites
32
32
  * @param foundId - Starting suite ID to search from
33
33
  * @param recursive - Whether to search recursively or just direct children
34
- * @param flatTreeByOneLevel - If true and there's only one level 1 suite with children, flatten the hierarchy by one level
34
+ * @param flatSuiteTestCases - If true and there's only one level 1 suite with children, flatten the hierarchy by one level
35
35
  * @returns Array of suiteData objects representing the hierarchy
36
36
  */
37
- static findSuitesRecursive(planId, url, project, suits, foundId, recursive, flatTreeByOneLevel = false) {
38
- console.log(`[findSuitesRecursive] Starting with foundId: ${foundId}, flatTreeByOneLevel: ${flatTreeByOneLevel}`);
39
- console.log(`[findSuitesRecursive] Total suits provided: ${suits.length}`);
40
- // Create a map for faster lookups
41
- const suiteMap = new Map();
42
- suits.forEach((suite) => suiteMap.set(suite.id.toString(), suite));
43
- const result = [];
44
- const visited = new Set();
45
- // Find the starting suite
46
- const startingSuite = suiteMap.get(foundId);
47
- if (!startingSuite) {
48
- console.log(`[findSuitesRecursive] ERROR: Starting suite ${foundId} not found in suite map`);
49
- return result;
37
+ static findSuitesRecursive(planId, url, project, suits, foundId, recursive, isTopLevel = true) {
38
+ // Only reset static state on the top-level call
39
+ if (isTopLevel) {
40
+ this.suitList = new Array();
41
+ this.level = 0; // Start at 0 so top-level suites get level 1
42
+ this.first = true;
50
43
  }
51
- console.log(`[findSuitesRecursive] Starting suite found: ${startingSuite.title} (ID: ${startingSuite.id}, parentSuiteId: ${startingSuite.parentSuiteId})`);
52
- // Skip root suites (parentSuiteId = 0) - we don't want them in results
53
- // Just mark them as visited so we can process their children
54
- if (startingSuite.parentSuiteId === 0) {
55
- console.log(`[findSuitesRecursive] Starting suite is root (parentSuiteId = 0), marking as visited`);
56
- visited.add(foundId);
57
- }
58
- // Build the hierarchy
59
- const startingLevel = startingSuite.parentSuiteId === 0 ? 1 : 0;
60
- console.log(`[findSuitesRecursive] Building hierarchy starting at level: ${startingLevel}`);
61
- this.buildSuiteHierarchy(suiteMap, foundId, planId, url, project, result, visited, startingLevel, recursive);
62
- console.log(`[findSuitesRecursive] Hierarchy built, result count: ${result.length}`);
63
- console.log(`[findSuitesRecursive] Result suites:`, result.map(s => `${s.name} (ID: ${s.id}, level: ${s.level}, parent: ${s.parent})`));
64
- // Apply flattening if conditions are met
65
- if (flatTreeByOneLevel) {
66
- console.log(`[findSuitesRecursive] Checking flattening conditions...`);
67
- if (this.shouldFlattenHierarchy(result, suiteMap, foundId)) {
68
- console.log(`[findSuitesRecursive] Flattening conditions met, applying flattening...`);
69
- const flattened = this.flattenHierarchyByOneLevel(result, foundId);
70
- console.log(`[findSuitesRecursive] After flattening:`, flattened.map(s => `${s.name} (ID: ${s.id}, level: ${s.level}, parent: ${s.parent})`));
71
- return flattened;
44
+ for (let i = 0; i < suits.length; i++) {
45
+ if (suits[i].parentSuiteId != 0) {
46
+ // Child suites (parentSuiteId != 0)
47
+ if (suits[i].parentSuiteId == foundId) {
48
+ // Found children of the selected suite - add them to results
49
+ let suit = new suiteData(suits[i].title, suits[i].id, foundId, this.level + 2);
50
+ suit.url =
51
+ url + project + '/_testManagement?planId=' + planId + '&suiteId=' + suits[i].id + '&_a=tests';
52
+ this.suitList.push(suit);
53
+ if (recursive == false) {
54
+ return this.suitList;
55
+ }
56
+ this.level++; // Increment level before recursive call
57
+ this.findSuitesRecursive(planId, url, project, suits, suits[i].id, true, false);
58
+ this.level--; // Decrement level after recursive call
59
+ }
60
+ else if (suits[i].id == foundId && this.first) {
61
+ // Found the selected nested suite itself - add it to results
62
+ let suit = new suiteData(suits[i].title, suits[i].id, suits[i].parentSuiteId, this.level + 1);
63
+ suit.url =
64
+ url + project + '/_testManagement?planId=' + planId + '&suiteId=' + suits[i].id + '&_a=tests';
65
+ this.suitList.push(suit);
66
+ this.first = false;
67
+ if (recursive == false) {
68
+ return this.suitList;
69
+ }
70
+ }
72
71
  }
73
72
  else {
74
- console.log(`[findSuitesRecursive] Flattening conditions NOT met`);
75
- }
76
- }
77
- console.log(`[findSuitesRecursive] Returning ${result.length} suites (no flattening applied)`);
78
- return result;
79
- }
80
- /**
81
- * Recursively builds the suite hierarchy
82
- */
83
- static buildSuiteHierarchy(suiteMap, parentId, planId, url, project, result, visited, currentLevel, recursive) {
84
- // Find all direct children of the current parent
85
- const children = Array.from(suiteMap.values()).filter((suite) => suite.parentSuiteId.toString() === parentId && !visited.has(suite.id.toString()));
86
- for (const child of children) {
87
- const childId = child.id.toString();
88
- if (visited.has(childId)) {
89
- continue; // Skip if already processed
90
- }
91
- // Create suite data for this child
92
- const childSuiteData = this.createSuiteData(child, planId, url, project, currentLevel);
93
- result.push(childSuiteData);
94
- visited.add(childId);
95
- // If recursive is false, only get direct children
96
- if (!recursive && currentLevel > 0) {
97
- continue;
98
- }
99
- // Recursively process children of this suite
100
- if (recursive) {
101
- this.buildSuiteHierarchy(suiteMap, childId, planId, url, project, result, visited, currentLevel + 1, recursive);
73
+ // Root suites (parentSuiteId = 0) - these do NOT get added to results
74
+ if (suits[i].id == foundId && Helper.first) {
75
+ console.log(`[findSuitesRecursive] DEBUG: Found root suite - NOT adding to results, just marking as processed: ${suits[i].title}`);
76
+ let suit = new suiteData(suits[i].title, suits[i].id, foundId, this.level);
77
+ suit.url = url + project + '/_workitems/edit/' + suits[i].id;
78
+ Helper.first = false;
79
+ if (recursive == false) {
80
+ return this.suitList;
81
+ }
82
+ }
102
83
  }
103
84
  }
104
- }
105
- /**
106
- * Creates a suiteData object from a suite
107
- */
108
- static createSuiteData(suiteInfo, planId, url, project, level) {
109
- const suite = new suiteData(suiteInfo.title, suiteInfo.id.toString(), suiteInfo.parentSuiteId.toString(), level);
110
- // Generate appropriate URL based on suite type
111
- if (suiteInfo.parentSuiteId === 0) {
112
- // Root suite - link to work item
113
- suite.url = `${url}/${project}/_workitems/edit/${suiteInfo.id}`;
114
- }
115
- else {
116
- // Child suite - link to test management
117
- suite.url = `${url}/${project}/_testManagement?planId=${planId}&suiteId=${suiteInfo.id}&_a=tests`;
118
- }
119
- return suite;
120
- }
121
- /**
122
- * Determines if hierarchy should be flattened based on conditions:
123
- * - There is exactly one level 1 suite (direct child of root)
124
- * - That suite has children (level 2+ suites)
125
- */
126
- static shouldFlattenHierarchy(result, suiteMap, rootId) {
127
- console.log(`[shouldFlattenHierarchy] Checking flattening conditions for rootId: ${rootId}`);
128
- console.log(`[shouldFlattenHierarchy] Total result suites: ${result.length}`);
129
- // Find all level 1 suites (direct children of root) - they have level 1
130
- const level1Suites = result.filter((suite) => suite.level === 1);
131
- console.log(`[shouldFlattenHierarchy] Found ${level1Suites.length} level 1 suites:`, level1Suites.map(s => `${s.name} (ID: ${s.id})`));
132
- // Must have exactly one level 1 suite
133
- if (level1Suites.length !== 1) {
134
- console.log(`[shouldFlattenHierarchy] CONDITION FAILED: Not exactly one level 1 suite (found ${level1Suites.length})`);
135
- return false;
136
- }
137
- const singleLevel1Suite = level1Suites[0];
138
- console.log(`[shouldFlattenHierarchy] Single level 1 suite: ${singleLevel1Suite.name} (ID: ${singleLevel1Suite.id})`);
139
- // Check if this suite has children by looking for suites with this suite as parent
140
- const childrenInResult = result.filter((suite) => suite.parent === singleLevel1Suite.id);
141
- console.log(`[shouldFlattenHierarchy] Found ${childrenInResult.length} children of level 1 suite:`, childrenInResult.map(s => `${s.name} (ID: ${s.id}, level: ${s.level})`));
142
- // The suite must have children
143
- const hasChildren = childrenInResult.length > 0;
144
- console.log(`[shouldFlattenHierarchy] Suite has children: ${hasChildren}`);
145
- console.log(`[shouldFlattenHierarchy] FLATTENING CONDITIONS ${hasChildren ? 'MET' : 'NOT MET'}`);
146
- return hasChildren;
147
- }
148
- /**
149
- * Flattens the hierarchy by one level:
150
- * - Removes the single level 1 suite
151
- * - Promotes all level 2+ suites up by one level
152
- * - Updates parentSuiteId of new level 1 suites to point to root
153
- */
154
- static flattenHierarchyByOneLevel(result, rootId) {
155
- console.log(`[flattenHierarchyByOneLevel] Starting flattening process for rootId: ${rootId}`);
156
- console.log(`[flattenHierarchyByOneLevel] Input suites:`, result.map(s => `${s.name} (ID: ${s.id}, level: ${s.level}, parent: ${s.parent})`));
157
- // Find the single level 1 suite to remove (level = 1)
158
- const level1Suite = result.find((suite) => suite.level === 1);
159
- if (!level1Suite) {
160
- console.log(`[flattenHierarchyByOneLevel] ERROR: No level 1 suite found to remove`);
161
- return result;
162
- }
163
- const level1SuiteId = level1Suite.id;
164
- console.log(`[flattenHierarchyByOneLevel] Removing level 1 suite: ${level1Suite.name} (ID: ${level1SuiteId})`);
165
- // Filter out the level 1 suite and adjust levels/parents for remaining suites
166
- const flattenedResult = result
167
- .filter((suite) => suite.id !== level1SuiteId) // Remove the level 1 suite
168
- .map((suite) => {
169
- const newSuite = new suiteData(suite.name, suite.id, suite.parent, suite.level - 1);
170
- newSuite.url = suite.url;
171
- // If this was a level 2 suite (child of the removed level 1 suite),
172
- // update its parent to point to the root
173
- if (suite.parent === level1SuiteId) {
174
- console.log(`[flattenHierarchyByOneLevel] Updating parent of ${suite.name} from ${level1SuiteId} to ${rootId}`);
175
- newSuite.parent = rootId;
176
- }
177
- console.log(`[flattenHierarchyByOneLevel] Processed suite: ${newSuite.name} (ID: ${newSuite.id}, level: ${suite.level} -> ${newSuite.level}, parent: ${suite.parent} -> ${newSuite.parent})`);
178
- return newSuite;
179
- });
180
- console.log(`[flattenHierarchyByOneLevel] Flattening complete. Result:`, flattenedResult.map(s => `${s.name} (ID: ${s.id}, level: ${s.level}, parent: ${s.parent})`));
181
- return flattenedResult;
85
+ return this.suitList;
182
86
  }
183
87
  static LevelBuilder(results, foundId) {
184
88
  // Reset the level list for each call
@@ -206,5 +110,8 @@ class Helper {
206
110
  }
207
111
  }
208
112
  exports.Helper = Helper;
113
+ Helper.level = 1;
114
+ Helper.first = true;
115
+ Helper.suitList = new Array();
209
116
  Helper.levelList = new Array();
210
117
  //# sourceMappingURL=helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../src/helpers/helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../src/helpers/helper.ts"],"names":[],"mappings":"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"}
@@ -13,8 +13,8 @@ export default class TestDataProvider {
13
13
  GetTestPlans(project: string): Promise<string>;
14
14
  GetTestSuites(project: string, planId: string): Promise<any>;
15
15
  GetTestSuitesForPlan(project: string, planid: string): Promise<any>;
16
- GetTestSuitesByPlan(project: string, planId: string, recursive: boolean, flatTreeByOneLevel?: boolean, suiteIdsFilter?: number[]): Promise<any>;
17
- GetTestSuiteById(project: string, planId: string, suiteId: string, recursive: boolean, flatTreeByOneLevel?: boolean, suiteIdsFilter?: number[]): Promise<any>;
16
+ GetTestSuitesByPlan(project: string, planId: string, recursive: boolean, suiteIdsFilter?: number[]): Promise<any>;
17
+ GetTestSuiteById(project: string, planId: string, suiteId: string, recursive: boolean, suiteIdsFilter?: number[]): Promise<any>;
18
18
  GetTestCasesBySuites(project: string, planId: string, suiteId: string, recursive: boolean, includeRequirements: boolean, CustomerRequirementId: boolean, isByRelatedLinkedMom: boolean, stepResultDetailsMap?: Map<string, any>, testCaseToLinkedMomLookup?: Map<number, any>, preFilteredSuites?: Array<suiteData>): Promise<any>;
19
19
  StructureTestCase(project: string, testCases: any, suite: suiteData, includeRequirements: boolean, CustomerRequirementId: boolean, isByRelatedLinkedMom: boolean, requirementToTestCaseTraceMap: Map<string, string[]>, testCaseToRequirementsTraceMap: Map<string, string[]>, stepResultDetailsMap?: Map<string, any>, testCaseToLinkedMomLookup?: Map<number, Set<any>>): Promise<any[]>;
20
20
  private createNewRequirement;
@@ -75,29 +75,74 @@ class TestDataProvider {
75
75
  let url = this.orgUrl + '/' + project + '/_api/_testManagement/GetTestSuitesForPlan?__v=5&planId=' + planid;
76
76
  return await this.fetchWithCache(url);
77
77
  }
78
- async GetTestSuitesByPlan(project, planId, recursive, flatTreeByOneLevel = false, suiteIdsFilter // NEW: Pass through suite filter
78
+ async GetTestSuitesByPlan(project, planId, recursive, suiteIdsFilter // NEW: Pass through suite filter
79
79
  ) {
80
- let suiteId = Number(planId) + 1;
81
- return this.GetTestSuiteById(project, planId, suiteId.toString(), recursive, flatTreeByOneLevel, suiteIdsFilter);
80
+ let suiteId;
81
+ if (suiteIdsFilter && suiteIdsFilter.length > 0) {
82
+ // When we have suite filtering, we need to find the "root" suite among the filtered suites
83
+ // This is the suite that is highest in the hierarchy (i.e., its parent is not in the filter)
84
+ // First get all suites to analyze the hierarchy
85
+ let allTestSuites = await this.GetTestSuitesForPlan(project, planId);
86
+ let allSuites = allTestSuites.testSuites;
87
+ // Create a map for quick lookup
88
+ const suiteMap = new Map();
89
+ allSuites.forEach((suite) => suiteMap.set(suite.id, suite));
90
+ // Find ALL top-level suites in the filter (those whose parent is not in the filter)
91
+ // These represent separate hierarchies that need to be processed independently
92
+ const topLevelSuites = [];
93
+ for (const filterSuiteId of suiteIdsFilter) {
94
+ const suite = suiteMap.get(filterSuiteId) || suiteMap.get(parseInt(filterSuiteId.toString()));
95
+ if (suite) {
96
+ // Check if this suite's parent is NOT in our filter (making it a top-level suite for our selection)
97
+ const parentInFilter = suiteIdsFilter.some(id => id.toString() === suite.parentSuiteId.toString() ||
98
+ parseInt(id.toString()) === suite.parentSuiteId);
99
+ if (!parentInFilter && suite.parentSuiteId !== 0) {
100
+ topLevelSuites.push(filterSuiteId.toString());
101
+ }
102
+ }
103
+ }
104
+ if (topLevelSuites.length === 0) {
105
+ // Fallback: use first suite if no clear top-level suites found
106
+ const selectedSuiteId = suiteIdsFilter[0].toString();
107
+ return this.GetTestSuiteById(project, planId, selectedSuiteId, recursive, suiteIdsFilter);
108
+ }
109
+ else if (topLevelSuites.length === 1) {
110
+ // Single hierarchy: use existing logic
111
+ const selectedSuiteId = topLevelSuites[0];
112
+ return this.GetTestSuiteById(project, planId, selectedSuiteId, recursive, suiteIdsFilter);
113
+ }
114
+ else {
115
+ // Multiple hierarchies: process each separately and combine results
116
+ const allSuites = [];
117
+ for (const topLevelSuiteId of topLevelSuites) {
118
+ const hierarchySuites = await this.GetTestSuiteById(project, planId, topLevelSuiteId, recursive, suiteIdsFilter);
119
+ allSuites.push(...hierarchySuites);
120
+ }
121
+ return allSuites;
122
+ }
123
+ }
124
+ else {
125
+ suiteId = (Number(planId) + 1).toString();
126
+ }
127
+ return this.GetTestSuiteById(project, planId, suiteId, recursive, suiteIdsFilter);
82
128
  }
83
- async GetTestSuiteById(project, planId, suiteId, recursive, flatTreeByOneLevel = false, suiteIdsFilter) {
129
+ async GetTestSuiteById(project, planId, suiteId, recursive, suiteIdsFilter) {
84
130
  let testSuites = await this.GetTestSuitesForPlan(project, planId);
85
- // Start with all suites
86
131
  let filteredSuites = testSuites.testSuites;
87
- // Filter by specific suite IDs if provided (e.g., testSuiteArray: [30,32,33,34,31])
132
+ // Apply suite filtering if provided
88
133
  if (suiteIdsFilter && suiteIdsFilter.length > 0) {
89
- // Convert filter IDs to strings once for efficient comparison
90
134
  const filterAsStrings = suiteIdsFilter.map(id => id.toString());
91
- filteredSuites = filteredSuites.filter((suite) => {
135
+ filteredSuites = testSuites.testSuites.filter((suite) => {
92
136
  const suiteIdString = suite.id.toString();
93
- // Always include the starting suite (needed for findSuitesRecursive to work)
137
+ // Check if suite ID matches the starting suite
94
138
  const isStartingSuite = suiteIdString === suiteId;
95
139
  // Check if suite ID is in the target filter list
96
140
  const isTargetSuite = filterAsStrings.includes(suiteIdString);
97
- return isStartingSuite || isTargetSuite;
141
+ const shouldInclude = isStartingSuite || isTargetSuite;
142
+ return shouldInclude;
98
143
  });
99
144
  }
100
- let dataSuites = helper_1.Helper.findSuitesRecursive(planId, this.orgUrl, project, filteredSuites, suiteId, recursive, flatTreeByOneLevel);
145
+ let dataSuites = helper_1.Helper.findSuitesRecursive(planId, this.orgUrl, project, filteredSuites, suiteId, recursive);
101
146
  return dataSuites;
102
147
  }
103
148
  async GetTestCasesBySuites(project, planId, suiteId, recursive, includeRequirements, CustomerRequirementId, isByRelatedLinkedMom, stepResultDetailsMap, testCaseToLinkedMomLookup, preFilteredSuites) {
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elisra-devops/docgen-data-provider",
3
- "version": "1.46.0",
3
+ "version": "1.48.0",
4
4
  "description": "A document generator data provider, aimed to retrive data from azure devops",
5
5
  "repository": {
6
6
  "type": "git",
@@ -35,6 +35,10 @@ export class Trace {
35
35
  }
36
36
 
37
37
  export class Helper {
38
+ static level: number = 1;
39
+ static first: boolean = true;
40
+ public static suitList: Array<suiteData> = new Array<suiteData>();
41
+
38
42
  /**
39
43
  * Finds test suites recursively starting from a given suite ID
40
44
  * @param planId - The test plan ID
@@ -43,7 +47,7 @@ export class Helper {
43
47
  * @param suits - Array of all test suites
44
48
  * @param foundId - Starting suite ID to search from
45
49
  * @param recursive - Whether to search recursively or just direct children
46
- * @param flatTreeByOneLevel - If true and there's only one level 1 suite with children, flatten the hierarchy by one level
50
+ * @param flatSuiteTestCases - If true and there's only one level 1 suite with children, flatten the hierarchy by one level
47
51
  * @returns Array of suiteData objects representing the hierarchy
48
52
  */
49
53
  public static findSuitesRecursive(
@@ -53,231 +57,69 @@ export class Helper {
53
57
  suits: any[],
54
58
  foundId: string,
55
59
  recursive: boolean,
56
- flatTreeByOneLevel: boolean = false
60
+ isTopLevel: boolean = true
57
61
  ): Array<suiteData> {
58
- console.log(`[findSuitesRecursive] Starting with foundId: ${foundId}, flatTreeByOneLevel: ${flatTreeByOneLevel}`);
59
- console.log(`[findSuitesRecursive] Total suits provided: ${suits.length}`);
60
-
61
- // Create a map for faster lookups
62
- const suiteMap = new Map<string, any>();
63
- suits.forEach((suite) => suiteMap.set(suite.id.toString(), suite));
64
-
65
- const result: Array<suiteData> = [];
66
- const visited = new Set<string>();
67
-
68
- // Find the starting suite
69
- const startingSuite = suiteMap.get(foundId);
70
- if (!startingSuite) {
71
- console.log(`[findSuitesRecursive] ERROR: Starting suite ${foundId} not found in suite map`);
72
- return result;
73
- }
74
-
75
- console.log(`[findSuitesRecursive] Starting suite found: ${startingSuite.title} (ID: ${startingSuite.id}, parentSuiteId: ${startingSuite.parentSuiteId})`);
76
-
77
- // Skip root suites (parentSuiteId = 0) - we don't want them in results
78
- // Just mark them as visited so we can process their children
79
- if (startingSuite.parentSuiteId === 0) {
80
- console.log(`[findSuitesRecursive] Starting suite is root (parentSuiteId = 0), marking as visited`);
81
- visited.add(foundId);
82
- }
83
62
 
84
- // Build the hierarchy
85
- const startingLevel = startingSuite.parentSuiteId === 0 ? 1 : 0;
86
- console.log(`[findSuitesRecursive] Building hierarchy starting at level: ${startingLevel}`);
87
63
 
88
- this.buildSuiteHierarchy(
89
- suiteMap,
90
- foundId,
91
- planId,
92
- url,
93
- project,
94
- result,
95
- visited,
96
- startingLevel,
97
- recursive
98
- );
99
-
100
- console.log(`[findSuitesRecursive] Hierarchy built, result count: ${result.length}`);
101
- console.log(`[findSuitesRecursive] Result suites:`, result.map(s => `${s.name} (ID: ${s.id}, level: ${s.level}, parent: ${s.parent})`));
64
+ // Only reset static state on the top-level call
65
+ if (isTopLevel) {
66
+ this.suitList = new Array<suiteData>();
67
+ this.level = 0; // Start at 0 so top-level suites get level 1
68
+ this.first = true;
69
+ }
102
70
 
103
- // Apply flattening if conditions are met
104
- if (flatTreeByOneLevel) {
105
- console.log(`[findSuitesRecursive] Checking flattening conditions...`);
106
- if (this.shouldFlattenHierarchy(result, suiteMap, foundId)) {
107
- console.log(`[findSuitesRecursive] Flattening conditions met, applying flattening...`);
108
- const flattened = this.flattenHierarchyByOneLevel(result, foundId);
109
- console.log(`[findSuitesRecursive] After flattening:`, flattened.map(s => `${s.name} (ID: ${s.id}, level: ${s.level}, parent: ${s.parent})`));
110
- return flattened;
71
+ for (let i = 0; i < suits.length; i++) {
72
+
73
+ if (suits[i].parentSuiteId != 0) {
74
+ // Child suites (parentSuiteId != 0)
75
+ if (suits[i].parentSuiteId == foundId) {
76
+
77
+ // Found children of the selected suite - add them to results
78
+ let suit: suiteData = new suiteData(suits[i].title, suits[i].id, foundId, this.level + 2);
79
+ suit.url =
80
+ url + project + '/_testManagement?planId=' + planId + '&suiteId=' + suits[i].id + '&_a=tests';
81
+ this.suitList.push(suit);
82
+ if (recursive == false) {
83
+ return this.suitList;
84
+ }
85
+ this.level++; // Increment level before recursive call
86
+ this.findSuitesRecursive(planId, url, project, suits, suits[i].id, true, false);
87
+ this.level--; // Decrement level after recursive call
88
+ } else if (suits[i].id == foundId && this.first) {
89
+
90
+ // Found the selected nested suite itself - add it to results
91
+ let suit: suiteData = new suiteData(
92
+ suits[i].title,
93
+ suits[i].id,
94
+ suits[i].parentSuiteId,
95
+ this.level + 1
96
+ );
97
+ suit.url =
98
+ url + project + '/_testManagement?planId=' + planId + '&suiteId=' + suits[i].id + '&_a=tests';
99
+ this.suitList.push(suit);
100
+ this.first = false;
101
+ if (recursive == false) {
102
+ return this.suitList;
103
+ }
104
+ }
111
105
  } else {
112
- console.log(`[findSuitesRecursive] Flattening conditions NOT met`);
106
+ // Root suites (parentSuiteId = 0) - these do NOT get added to results
107
+ if (suits[i].id == foundId && Helper.first) {
108
+ console.log(`[findSuitesRecursive] DEBUG: Found root suite - NOT adding to results, just marking as processed: ${suits[i].title}`);
109
+ let suit: suiteData = new suiteData(suits[i].title, suits[i].id, foundId, this.level);
110
+ suit.url = url + project + '/_workitems/edit/' + suits[i].id;
111
+ Helper.first = false;
112
+ if (recursive == false) {
113
+ return this.suitList;
114
+ }
115
+ }
113
116
  }
114
117
  }
115
118
 
116
- console.log(`[findSuitesRecursive] Returning ${result.length} suites (no flattening applied)`);
117
- return result;
119
+ return this.suitList;
118
120
  }
119
121
 
120
- /**
121
- * Recursively builds the suite hierarchy
122
- */
123
- private static buildSuiteHierarchy(
124
- suiteMap: Map<string, any>,
125
- parentId: string,
126
- planId: string,
127
- url: string,
128
- project: string,
129
- result: Array<suiteData>,
130
- visited: Set<string>,
131
- currentLevel: number,
132
- recursive: boolean
133
- ): void {
134
- // Find all direct children of the current parent
135
- const children = Array.from(suiteMap.values()).filter(
136
- (suite) => suite.parentSuiteId.toString() === parentId && !visited.has(suite.id.toString())
137
- );
138
-
139
- for (const child of children) {
140
- const childId = child.id.toString();
141
-
142
- if (visited.has(childId)) {
143
- continue; // Skip if already processed
144
- }
145
-
146
- // Create suite data for this child
147
- const childSuiteData = this.createSuiteData(child, planId, url, project, currentLevel);
148
- result.push(childSuiteData);
149
- visited.add(childId);
150
-
151
- // If recursive is false, only get direct children
152
- if (!recursive && currentLevel > 0) {
153
- continue;
154
- }
155
122
 
156
- // Recursively process children of this suite
157
- if (recursive) {
158
- this.buildSuiteHierarchy(
159
- suiteMap,
160
- childId,
161
- planId,
162
- url,
163
- project,
164
- result,
165
- visited,
166
- currentLevel + 1,
167
- recursive
168
- );
169
- }
170
- }
171
- }
172
-
173
- /**
174
- * Creates a suiteData object from a suite
175
- */
176
- private static createSuiteData(
177
- suiteInfo: any,
178
- planId: string,
179
- url: string,
180
- project: string,
181
- level: number
182
- ): suiteData {
183
- const suite = new suiteData(
184
- suiteInfo.title,
185
- suiteInfo.id.toString(),
186
- suiteInfo.parentSuiteId.toString(),
187
- level
188
- );
189
-
190
- // Generate appropriate URL based on suite type
191
- if (suiteInfo.parentSuiteId === 0) {
192
- // Root suite - link to work item
193
- suite.url = `${url}/${project}/_workitems/edit/${suiteInfo.id}`;
194
- } else {
195
- // Child suite - link to test management
196
- suite.url = `${url}/${project}/_testManagement?planId=${planId}&suiteId=${suiteInfo.id}&_a=tests`;
197
- }
198
-
199
- return suite;
200
- }
201
-
202
- /**
203
- * Determines if hierarchy should be flattened based on conditions:
204
- * - There is exactly one level 1 suite (direct child of root)
205
- * - That suite has children (level 2+ suites)
206
- */
207
- private static shouldFlattenHierarchy(
208
- result: Array<suiteData>,
209
- suiteMap: Map<string, any>,
210
- rootId: string
211
- ): boolean {
212
- console.log(`[shouldFlattenHierarchy] Checking flattening conditions for rootId: ${rootId}`);
213
- console.log(`[shouldFlattenHierarchy] Total result suites: ${result.length}`);
214
-
215
- // Find all level 1 suites (direct children of root) - they have level 1
216
- const level1Suites = result.filter((suite) => suite.level === 1);
217
- console.log(`[shouldFlattenHierarchy] Found ${level1Suites.length} level 1 suites:`, level1Suites.map(s => `${s.name} (ID: ${s.id})`));
218
-
219
- // Must have exactly one level 1 suite
220
- if (level1Suites.length !== 1) {
221
- console.log(`[shouldFlattenHierarchy] CONDITION FAILED: Not exactly one level 1 suite (found ${level1Suites.length})`);
222
- return false;
223
- }
224
-
225
- const singleLevel1Suite = level1Suites[0];
226
- console.log(`[shouldFlattenHierarchy] Single level 1 suite: ${singleLevel1Suite.name} (ID: ${singleLevel1Suite.id})`);
227
-
228
- // Check if this suite has children by looking for suites with this suite as parent
229
- const childrenInResult = result.filter((suite) => suite.parent === singleLevel1Suite.id);
230
- console.log(`[shouldFlattenHierarchy] Found ${childrenInResult.length} children of level 1 suite:`, childrenInResult.map(s => `${s.name} (ID: ${s.id}, level: ${s.level})`));
231
-
232
- // The suite must have children
233
- const hasChildren = childrenInResult.length > 0;
234
- console.log(`[shouldFlattenHierarchy] Suite has children: ${hasChildren}`);
235
- console.log(`[shouldFlattenHierarchy] FLATTENING CONDITIONS ${hasChildren ? 'MET' : 'NOT MET'}`);
236
-
237
- return hasChildren;
238
- }
239
-
240
- /**
241
- * Flattens the hierarchy by one level:
242
- * - Removes the single level 1 suite
243
- * - Promotes all level 2+ suites up by one level
244
- * - Updates parentSuiteId of new level 1 suites to point to root
245
- */
246
- private static flattenHierarchyByOneLevel(result: Array<suiteData>, rootId: string): Array<suiteData> {
247
- console.log(`[flattenHierarchyByOneLevel] Starting flattening process for rootId: ${rootId}`);
248
- console.log(`[flattenHierarchyByOneLevel] Input suites:`, result.map(s => `${s.name} (ID: ${s.id}, level: ${s.level}, parent: ${s.parent})`));
249
-
250
- // Find the single level 1 suite to remove (level = 1)
251
- const level1Suite = result.find((suite) => suite.level === 1);
252
- if (!level1Suite) {
253
- console.log(`[flattenHierarchyByOneLevel] ERROR: No level 1 suite found to remove`);
254
- return result;
255
- }
256
-
257
- const level1SuiteId = level1Suite.id;
258
- console.log(`[flattenHierarchyByOneLevel] Removing level 1 suite: ${level1Suite.name} (ID: ${level1SuiteId})`);
259
-
260
- // Filter out the level 1 suite and adjust levels/parents for remaining suites
261
- const flattenedResult = result
262
- .filter((suite) => suite.id !== level1SuiteId) // Remove the level 1 suite
263
- .map((suite) => {
264
- const newSuite = new suiteData(suite.name, suite.id, suite.parent, suite.level - 1);
265
- newSuite.url = suite.url;
266
-
267
- // If this was a level 2 suite (child of the removed level 1 suite),
268
- // update its parent to point to the root
269
- if (suite.parent === level1SuiteId) {
270
- console.log(`[flattenHierarchyByOneLevel] Updating parent of ${suite.name} from ${level1SuiteId} to ${rootId}`);
271
- newSuite.parent = rootId;
272
- }
273
-
274
- console.log(`[flattenHierarchyByOneLevel] Processed suite: ${newSuite.name} (ID: ${newSuite.id}, level: ${suite.level} -> ${newSuite.level}, parent: ${suite.parent} -> ${newSuite.parent})`);
275
- return newSuite;
276
- });
277
-
278
- console.log(`[flattenHierarchyByOneLevel] Flattening complete. Result:`, flattenedResult.map(s => `${s.name} (ID: ${s.id}, level: ${s.level}, parent: ${s.parent})`));
279
- return flattenedResult;
280
- }
281
123
 
282
124
  public static levelList: Array<Workitem> = new Array<Workitem>();
283
125
 
@@ -84,11 +84,82 @@ export default class TestDataProvider {
84
84
  project: string,
85
85
  planId: string,
86
86
  recursive: boolean,
87
- flatTreeByOneLevel: boolean = false,
88
- suiteIdsFilter?: number[] // NEW: Pass through suite filter
87
+ suiteIdsFilter?: number[] // NEW: Pass through suite filter
89
88
  ): Promise<any> {
90
- let suiteId = Number(planId) + 1;
91
- return this.GetTestSuiteById(project, planId, suiteId.toString(), recursive, flatTreeByOneLevel, suiteIdsFilter);
89
+ let suiteId: string;
90
+
91
+ if (suiteIdsFilter && suiteIdsFilter.length > 0) {
92
+ // When we have suite filtering, we need to find the "root" suite among the filtered suites
93
+ // This is the suite that is highest in the hierarchy (i.e., its parent is not in the filter)
94
+
95
+
96
+
97
+ // First get all suites to analyze the hierarchy
98
+ let allTestSuites = await this.GetTestSuitesForPlan(project, planId);
99
+ let allSuites = allTestSuites.testSuites;
100
+
101
+ // Create a map for quick lookup
102
+ const suiteMap = new Map();
103
+ allSuites.forEach((suite: any) => suiteMap.set(suite.id, suite));
104
+
105
+
106
+
107
+ // Find ALL top-level suites in the filter (those whose parent is not in the filter)
108
+ // These represent separate hierarchies that need to be processed independently
109
+
110
+
111
+ const topLevelSuites: string[] = [];
112
+
113
+ for (const filterSuiteId of suiteIdsFilter) {
114
+ const suite = suiteMap.get(filterSuiteId) || suiteMap.get(parseInt(filterSuiteId.toString()));
115
+ if (suite) {
116
+
117
+
118
+ // Check if this suite's parent is NOT in our filter (making it a top-level suite for our selection)
119
+ const parentInFilter = suiteIdsFilter.some(id =>
120
+ id.toString() === suite.parentSuiteId.toString() ||
121
+ parseInt(id.toString()) === suite.parentSuiteId
122
+ );
123
+
124
+ if (!parentInFilter && suite.parentSuiteId !== 0) {
125
+
126
+ topLevelSuites.push(filterSuiteId.toString());
127
+ }
128
+ }
129
+ }
130
+
131
+
132
+
133
+ if (topLevelSuites.length === 0) {
134
+ // Fallback: use first suite if no clear top-level suites found
135
+ const selectedSuiteId = suiteIdsFilter[0].toString();
136
+
137
+ return this.GetTestSuiteById(project, planId, selectedSuiteId, recursive, suiteIdsFilter);
138
+ } else if (topLevelSuites.length === 1) {
139
+ // Single hierarchy: use existing logic
140
+ const selectedSuiteId = topLevelSuites[0];
141
+
142
+ return this.GetTestSuiteById(project, planId, selectedSuiteId, recursive, suiteIdsFilter);
143
+ } else {
144
+ // Multiple hierarchies: process each separately and combine results
145
+
146
+ const allSuites: any[] = [];
147
+
148
+ for (const topLevelSuiteId of topLevelSuites) {
149
+
150
+ const hierarchySuites = await this.GetTestSuiteById(project, planId, topLevelSuiteId, recursive, suiteIdsFilter);
151
+
152
+ allSuites.push(...hierarchySuites);
153
+ }
154
+
155
+
156
+ return allSuites;
157
+ }
158
+ } else {
159
+ suiteId = (Number(planId) + 1).toString();
160
+ }
161
+
162
+ return this.GetTestSuiteById(project, planId, suiteId, recursive, suiteIdsFilter);
92
163
  }
93
164
 
94
165
  async GetTestSuiteById(
@@ -96,40 +167,47 @@ export default class TestDataProvider {
96
167
  planId: string,
97
168
  suiteId: string,
98
169
  recursive: boolean,
99
- flatTreeByOneLevel: boolean = false,
100
170
  suiteIdsFilter?: number[]
101
171
  ): Promise<any> {
102
- let testSuites = await this.GetTestSuitesForPlan(project, planId);
103
172
 
104
- // Start with all suites
173
+
174
+ let testSuites = await this.GetTestSuitesForPlan(project, planId);
105
175
  let filteredSuites = testSuites.testSuites;
176
+
177
+
106
178
 
107
- // Filter by specific suite IDs if provided (e.g., testSuiteArray: [30,32,33,34,31])
179
+ // Apply suite filtering if provided
108
180
  if (suiteIdsFilter && suiteIdsFilter.length > 0) {
109
- // Convert filter IDs to strings once for efficient comparison
110
181
  const filterAsStrings = suiteIdsFilter.map(id => id.toString());
182
+
111
183
 
112
- filteredSuites = filteredSuites.filter((suite: any) => {
184
+ filteredSuites = testSuites.testSuites.filter((suite: any) => {
113
185
  const suiteIdString = suite.id.toString();
114
186
 
115
- // Always include the starting suite (needed for findSuitesRecursive to work)
187
+ // Check if suite ID matches the starting suite
116
188
  const isStartingSuite = suiteIdString === suiteId;
117
189
 
118
190
  // Check if suite ID is in the target filter list
119
191
  const isTargetSuite = filterAsStrings.includes(suiteIdString);
120
192
 
121
- return isStartingSuite || isTargetSuite;
193
+ const shouldInclude = isStartingSuite || isTargetSuite;
194
+
195
+
196
+ return shouldInclude;
122
197
  });
198
+
199
+
123
200
  }
124
201
 
202
+
203
+
125
204
  let dataSuites: any = Helper.findSuitesRecursive(
126
205
  planId,
127
206
  this.orgUrl,
128
207
  project,
129
208
  filteredSuites,
130
209
  suiteId,
131
- recursive,
132
- flatTreeByOneLevel
210
+ recursive
133
211
  );
134
212
 
135
213
  return dataSuites;
@@ -157,12 +235,7 @@ export default class TestDataProvider {
157
235
  if (preFilteredSuites && preFilteredSuites.length > 0) {
158
236
  suitesTestCasesList = preFilteredSuites;
159
237
  } else {
160
- suitesTestCasesList = await this.GetTestSuiteById(
161
- project,
162
- planId,
163
- suiteId,
164
- recursive
165
- );
238
+ suitesTestCasesList = await this.GetTestSuiteById(project, planId, suiteId, recursive);
166
239
  }
167
240
 
168
241
  // Create array of promises that each return their test cases