@elisra-devops/docgen-data-provider 1.19.0 → 1.20.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.
|
@@ -15,7 +15,7 @@ export default class TestDataProvider {
|
|
|
15
15
|
GetTestSuitesByPlan(project: string, planId: string, recursive: boolean): Promise<any>;
|
|
16
16
|
GetTestSuiteById(project: string, planId: string, suiteId: string, recursive: boolean): Promise<any>;
|
|
17
17
|
GetTestCasesBySuites(project: string, planId: string, suiteId: string, recursive: boolean, includeRequirements: boolean, CustomerRequirementId: boolean, stepResultDetailsMap?: Map<string, any>): Promise<any>;
|
|
18
|
-
StructureTestCase(project: string, testCases: any, suite: suiteData, includeRequirements: boolean, CustomerRequirementId: boolean, requirementToTestCaseTraceMap: Map<string, string[]>, testCaseToRequirementsTraceMap: Map<string, string[]>, stepResultDetailsMap?: Map<string, any>): Promise<
|
|
18
|
+
StructureTestCase(project: string, testCases: any, suite: suiteData, includeRequirements: boolean, CustomerRequirementId: boolean, requirementToTestCaseTraceMap: Map<string, string[]>, testCaseToRequirementsTraceMap: Map<string, string[]>, stepResultDetailsMap?: Map<string, any>): Promise<any[]>;
|
|
19
19
|
private createNewRequirement;
|
|
20
20
|
ParseSteps(steps: string): TestSteps[];
|
|
21
21
|
GetTestCases(project: string, planId: string, suiteId: string): Promise<any>;
|
|
@@ -88,12 +88,17 @@ class TestDataProvider {
|
|
|
88
88
|
let testCasesList = new Array();
|
|
89
89
|
const requirementToTestCaseTraceMap = new Map();
|
|
90
90
|
const testCaseToRequirementsTraceMap = new Map();
|
|
91
|
+
// const startTime = performance.now();
|
|
91
92
|
let suitesTestCasesList = await this.GetTestSuiteById(project, planId, suiteId, recursive);
|
|
92
93
|
// Create array of promises that each return their test cases
|
|
93
94
|
const testCaseListPromises = suitesTestCasesList.map((suite) => this.limit(async () => {
|
|
94
95
|
try {
|
|
95
96
|
const testCases = await this.GetTestCases(project, planId, suite.id);
|
|
97
|
+
// const structureStartTime = performance.now();
|
|
96
98
|
const testCasesWithSteps = await this.StructureTestCase(project, testCases, suite, includeRequirements, CustomerRequirementId, requirementToTestCaseTraceMap, testCaseToRequirementsTraceMap, stepResultDetailsMap);
|
|
99
|
+
// logger.debug(
|
|
100
|
+
// `Performance: structured suite ${suite.id} in ${performance.now() - structureStartTime}ms`
|
|
101
|
+
// );
|
|
97
102
|
// Return the results instead of modifying shared array
|
|
98
103
|
return testCasesWithSteps || [];
|
|
99
104
|
}
|
|
@@ -105,135 +110,85 @@ class TestDataProvider {
|
|
|
105
110
|
// Wait for all promises and only then combine the results
|
|
106
111
|
const results = await Promise.all(testCaseListPromises);
|
|
107
112
|
testCasesList = results.flat(); // Combine all results into a single array
|
|
113
|
+
// logger.debug(`Performance: GetTestCasesBySuites completed in ${performance.now() - startTime}ms`);
|
|
108
114
|
return { testCasesList, requirementToTestCaseTraceMap, testCaseToRequirementsTraceMap };
|
|
109
115
|
}
|
|
110
116
|
async StructureTestCase(project, testCases, suite, includeRequirements, CustomerRequirementId, requirementToTestCaseTraceMap, testCaseToRequirementsTraceMap, stepResultDetailsMap) {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
logger_1.default.debug(`
|
|
117
|
+
let url = this.orgUrl + project + '/_workitems/edit/';
|
|
118
|
+
let testCasesUrlList = [];
|
|
119
|
+
logger_1.default.debug(`Trying to structure Test case for ${project} suite: ${suite.id}:${suite.name}`);
|
|
114
120
|
try {
|
|
115
121
|
if (!testCases || !testCases.value || testCases.count === 0) {
|
|
116
122
|
logger_1.default.warn(`No test cases found for suite: ${suite.id}`);
|
|
117
123
|
return [];
|
|
118
124
|
}
|
|
119
|
-
|
|
120
|
-
const testCaseRequests = testCases.value.map((item) => {
|
|
121
|
-
const testCaseId = item.testCase.id.toString();
|
|
122
|
-
const stepDetailObject = stepResultDetailsMap === null || stepResultDetailsMap === void 0 ? void 0 : stepResultDetailsMap.get(testCaseId);
|
|
123
|
-
const url = !(stepDetailObject === null || stepDetailObject === void 0 ? void 0 : stepDetailObject.testCaseRevision)
|
|
124
|
-
? item.testCase.url + '?$expand=All'
|
|
125
|
-
: `${item.testCase.url}/revisions/${stepDetailObject.testCaseRevision}?$expand=All`;
|
|
126
|
-
return {
|
|
127
|
-
url,
|
|
128
|
-
testCaseId,
|
|
129
|
-
stepDetailObject,
|
|
130
|
-
};
|
|
131
|
-
});
|
|
132
|
-
// Step 2: Fetch all test cases in parallel using limit to control concurrency
|
|
133
|
-
logger_1.default.debug(`Fetching ${testCaseRequests.length} test cases concurrently`);
|
|
134
|
-
const testCaseResults = await Promise.all(testCaseRequests.map((request) => this.limit(async () => {
|
|
125
|
+
for (let i = 0; i < testCases.count; i++) {
|
|
135
126
|
try {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}
|
|
143
|
-
catch (error) {
|
|
144
|
-
logger_1.default.error(`Error fetching test case ${request.testCaseId}: ${error}`);
|
|
145
|
-
return null;
|
|
146
|
-
}
|
|
147
|
-
})));
|
|
148
|
-
// Step 3: Process test cases and collect relation URLs
|
|
149
|
-
const validResults = testCaseResults.filter((result) => result !== null);
|
|
150
|
-
const relationRequests = [];
|
|
151
|
-
const testCaseObjects = await Promise.all(validResults.map(async (result, index) => {
|
|
152
|
-
try {
|
|
153
|
-
const test = result.test;
|
|
154
|
-
const testCase = new tfs_data_2.TestCase();
|
|
155
|
-
// Build test case object
|
|
127
|
+
let stepDetailObject = (stepResultDetailsMap === null || stepResultDetailsMap === void 0 ? void 0 : stepResultDetailsMap.get(testCases.value[i].testCase.id.toString())) || undefined;
|
|
128
|
+
let newurl = !(stepDetailObject === null || stepDetailObject === void 0 ? void 0 : stepDetailObject.testCaseRevision)
|
|
129
|
+
? testCases.value[i].testCase.url + '?$expand=All'
|
|
130
|
+
: `${testCases.value[i].testCase.url}/revisions/${stepDetailObject.testCaseRevision}?$expand=All`;
|
|
131
|
+
let test = await this.fetchWithCache(newurl);
|
|
132
|
+
let testCase = new tfs_data_2.TestCase();
|
|
156
133
|
testCase.title = test.fields['System.Title'];
|
|
157
134
|
testCase.area = test.fields['System.AreaPath'];
|
|
158
135
|
testCase.description = test.fields['System.Description'];
|
|
159
|
-
testCase.url =
|
|
136
|
+
testCase.url = url + test.id;
|
|
137
|
+
//testCase.steps = test.fields["Microsoft.VSTS.TCM.Steps"];
|
|
160
138
|
testCase.id = test.id;
|
|
161
139
|
testCase.suit = suite.id;
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
testCase.steps =
|
|
140
|
+
if (!stepDetailObject && test.fields['Microsoft.VSTS.TCM.Steps'] != null) {
|
|
141
|
+
let steps = await this.testStepParserHelper.parseTestSteps(test.fields['Microsoft.VSTS.TCM.Steps'], new Map());
|
|
142
|
+
testCase.steps = steps;
|
|
143
|
+
//In case its already parsed during the STR
|
|
165
144
|
}
|
|
166
|
-
else if (
|
|
167
|
-
testCase.steps =
|
|
168
|
-
testCase.caseEvidenceAttachments =
|
|
145
|
+
else if (stepDetailObject) {
|
|
146
|
+
testCase.steps = stepDetailObject.stepList;
|
|
147
|
+
testCase.caseEvidenceAttachments = stepDetailObject.caseEvidenceAttachments;
|
|
169
148
|
}
|
|
170
|
-
// Collect relation URLs for batch processing
|
|
171
149
|
if (test.relations) {
|
|
172
|
-
test.relations
|
|
150
|
+
for (const relation of test.relations) {
|
|
151
|
+
// Only proceed if the URL contains 'workItems'
|
|
173
152
|
if (relation.url.includes('/workItems/')) {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
153
|
+
try {
|
|
154
|
+
let relatedItemContent = await this.fetchWithCache(relation.url);
|
|
155
|
+
// Check if the WorkItemType is "Requirement" before adding to relations
|
|
156
|
+
if (relatedItemContent.fields['System.WorkItemType'] === 'Requirement') {
|
|
157
|
+
const newRequirementRelation = this.createNewRequirement(CustomerRequirementId, relatedItemContent);
|
|
158
|
+
const stringifiedTestCase = JSON.stringify({
|
|
159
|
+
id: testCase.id,
|
|
160
|
+
title: testCase.title,
|
|
161
|
+
});
|
|
162
|
+
const stringifiedRequirement = JSON.stringify(newRequirementRelation);
|
|
163
|
+
// Add the test case to the requirement-to-test-case trace map
|
|
164
|
+
this.addToMap(requirementToTestCaseTraceMap, stringifiedRequirement, stringifiedTestCase);
|
|
165
|
+
// Add the requirement to the test-case-to-requirements trace map
|
|
166
|
+
this.addToMap(testCaseToRequirementsTraceMap, stringifiedTestCase, stringifiedRequirement);
|
|
167
|
+
if (includeRequirements) {
|
|
168
|
+
testCase.relations.push(newRequirementRelation);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
catch (fetchError) {
|
|
173
|
+
// Log error silently or handle as needed
|
|
174
|
+
console.error('Failed to fetch relation content', fetchError);
|
|
175
|
+
logger_1.default.error(`Failed to fetch relation content for URL ${relation.url}: ${fetchError}`);
|
|
176
|
+
}
|
|
178
177
|
}
|
|
179
|
-
}
|
|
178
|
+
}
|
|
180
179
|
}
|
|
181
|
-
|
|
180
|
+
testCasesUrlList.push(testCase);
|
|
182
181
|
}
|
|
183
|
-
catch (
|
|
184
|
-
|
|
185
|
-
|
|
182
|
+
catch (_a) {
|
|
183
|
+
const errorMsg = `ran into an issue while retrieving testCase ${testCases.value[i].testCase.id}`;
|
|
184
|
+
logger_1.default.error(`Error: ${errorMsg}`);
|
|
185
|
+
throw new Error(errorMsg);
|
|
186
186
|
}
|
|
187
|
-
}));
|
|
188
|
-
// Filter out any errors during test case processing
|
|
189
|
-
const validTestCases = testCaseObjects.filter((tc) => tc !== null);
|
|
190
|
-
// Step 4: Fetch all relations concurrently
|
|
191
|
-
if (relationRequests.length > 0) {
|
|
192
|
-
logger_1.default.debug(`Fetching ${relationRequests.length} relations concurrently`);
|
|
193
|
-
const relationResults = await Promise.all(relationRequests.map((request) => this.limit(async () => {
|
|
194
|
-
try {
|
|
195
|
-
const relatedItemContent = await this.fetchWithCache(request.url);
|
|
196
|
-
return {
|
|
197
|
-
content: relatedItemContent,
|
|
198
|
-
testCaseIndex: request.testCaseIndex,
|
|
199
|
-
};
|
|
200
|
-
}
|
|
201
|
-
catch (error) {
|
|
202
|
-
logger_1.default.error(`Failed to fetch relation: ${error}`);
|
|
203
|
-
return null;
|
|
204
|
-
}
|
|
205
|
-
})));
|
|
206
|
-
// Step 5: Process relations and update test cases
|
|
207
|
-
relationResults
|
|
208
|
-
.filter((result) => result !== null)
|
|
209
|
-
.forEach((result) => {
|
|
210
|
-
const relatedItemContent = result.content;
|
|
211
|
-
const testCase = validTestCases[result.testCaseIndex];
|
|
212
|
-
// Only process requirement relations
|
|
213
|
-
if (relatedItemContent.fields['System.WorkItemType'] === 'Requirement') {
|
|
214
|
-
const newRequirementRelation = this.createNewRequirement(CustomerRequirementId, relatedItemContent);
|
|
215
|
-
const stringifiedTestCase = JSON.stringify({
|
|
216
|
-
id: testCase.id,
|
|
217
|
-
title: testCase.title,
|
|
218
|
-
});
|
|
219
|
-
const stringifiedRequirement = JSON.stringify(newRequirementRelation);
|
|
220
|
-
// Update trace maps
|
|
221
|
-
this.addToMap(requirementToTestCaseTraceMap, stringifiedRequirement, stringifiedTestCase);
|
|
222
|
-
this.addToMap(testCaseToRequirementsTraceMap, stringifiedTestCase, stringifiedRequirement);
|
|
223
|
-
// Add to test case relations if needed
|
|
224
|
-
if (includeRequirements) {
|
|
225
|
-
testCase.relations.push(newRequirementRelation);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
});
|
|
229
187
|
}
|
|
230
|
-
// Add all valid test cases to the result list
|
|
231
|
-
testCasesUrlList.push(...validTestCases);
|
|
232
188
|
}
|
|
233
189
|
catch (err) {
|
|
234
|
-
logger_1.default.error(`Error: ${err.message} while
|
|
190
|
+
logger_1.default.error(`Error: ${err.message} while trying to structure testCases for test suite ${suite.id}`);
|
|
235
191
|
}
|
|
236
|
-
logger_1.default.info(`StructureTestCase for suite ${suite.id} completed with ${testCasesUrlList.length} test cases`);
|
|
237
192
|
return testCasesUrlList;
|
|
238
193
|
}
|
|
239
194
|
createNewRequirement(CustomerRequirementId, relatedItemContent) {
|
|
@@ -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
|
@@ -107,6 +107,8 @@ export default class TestDataProvider {
|
|
|
107
107
|
let testCasesList: Array<any> = new Array<any>();
|
|
108
108
|
const requirementToTestCaseTraceMap: Map<string, string[]> = new Map();
|
|
109
109
|
const testCaseToRequirementsTraceMap: Map<string, string[]> = new Map();
|
|
110
|
+
// const startTime = performance.now();
|
|
111
|
+
|
|
110
112
|
let suitesTestCasesList: Array<suiteData> = await this.GetTestSuiteById(
|
|
111
113
|
project,
|
|
112
114
|
planId,
|
|
@@ -119,7 +121,7 @@ export default class TestDataProvider {
|
|
|
119
121
|
this.limit(async () => {
|
|
120
122
|
try {
|
|
121
123
|
const testCases = await this.GetTestCases(project, planId, suite.id);
|
|
122
|
-
|
|
124
|
+
// const structureStartTime = performance.now();
|
|
123
125
|
const testCasesWithSteps = await this.StructureTestCase(
|
|
124
126
|
project,
|
|
125
127
|
testCases,
|
|
@@ -130,6 +132,9 @@ export default class TestDataProvider {
|
|
|
130
132
|
testCaseToRequirementsTraceMap,
|
|
131
133
|
stepResultDetailsMap
|
|
132
134
|
);
|
|
135
|
+
// logger.debug(
|
|
136
|
+
// `Performance: structured suite ${suite.id} in ${performance.now() - structureStartTime}ms`
|
|
137
|
+
// );
|
|
133
138
|
|
|
134
139
|
// Return the results instead of modifying shared array
|
|
135
140
|
return testCasesWithSteps || [];
|
|
@@ -143,7 +148,7 @@ export default class TestDataProvider {
|
|
|
143
148
|
// Wait for all promises and only then combine the results
|
|
144
149
|
const results = await Promise.all(testCaseListPromises);
|
|
145
150
|
testCasesList = results.flat(); // Combine all results into a single array
|
|
146
|
-
|
|
151
|
+
// logger.debug(`Performance: GetTestCasesBySuites completed in ${performance.now() - startTime}ms`);
|
|
147
152
|
return { testCasesList, requirementToTestCaseTraceMap, testCaseToRequirementsTraceMap };
|
|
148
153
|
}
|
|
149
154
|
|
|
@@ -156,167 +161,98 @@ export default class TestDataProvider {
|
|
|
156
161
|
requirementToTestCaseTraceMap: Map<string, string[]>,
|
|
157
162
|
testCaseToRequirementsTraceMap: Map<string, string[]>,
|
|
158
163
|
stepResultDetailsMap?: Map<string, any>
|
|
159
|
-
): Promise<
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
logger.debug(`Structuring test cases for ${project} suite: ${suite.id}:${suite.name}`);
|
|
164
|
-
|
|
164
|
+
): Promise<any[]> {
|
|
165
|
+
let url = this.orgUrl + project + '/_workitems/edit/';
|
|
166
|
+
let testCasesUrlList: any[] = [];
|
|
167
|
+
logger.debug(`Trying to structure Test case for ${project} suite: ${suite.id}:${suite.name}`);
|
|
165
168
|
try {
|
|
166
169
|
if (!testCases || !testCases.value || testCases.count === 0) {
|
|
167
170
|
logger.warn(`No test cases found for suite: ${suite.id}`);
|
|
168
171
|
return [];
|
|
169
172
|
}
|
|
170
173
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
logger.error(`Error fetching test case ${request.testCaseId}: ${error}`);
|
|
201
|
-
return null;
|
|
202
|
-
}
|
|
203
|
-
})
|
|
204
|
-
)
|
|
205
|
-
);
|
|
206
|
-
|
|
207
|
-
// Step 3: Process test cases and collect relation URLs
|
|
208
|
-
const validResults = testCaseResults.filter((result) => result !== null);
|
|
209
|
-
const relationRequests: Array<{ url: string; testCaseIndex: number }> = [];
|
|
210
|
-
|
|
211
|
-
const testCaseObjects = await Promise.all(
|
|
212
|
-
validResults.map(async (result, index) => {
|
|
213
|
-
try {
|
|
214
|
-
const test = result!.test;
|
|
215
|
-
const testCase = new TestCase();
|
|
216
|
-
|
|
217
|
-
// Build test case object
|
|
218
|
-
testCase.title = test.fields['System.Title'];
|
|
219
|
-
testCase.area = test.fields['System.AreaPath'];
|
|
220
|
-
testCase.description = test.fields['System.Description'];
|
|
221
|
-
testCase.url = baseUrl + test.id;
|
|
222
|
-
testCase.id = test.id;
|
|
223
|
-
testCase.suit = suite.id;
|
|
224
|
-
|
|
225
|
-
// Handle steps
|
|
226
|
-
if (!result!.stepDetailObject && test.fields['Microsoft.VSTS.TCM.Steps'] != null) {
|
|
227
|
-
testCase.steps = await this.testStepParserHelper.parseTestSteps(
|
|
228
|
-
test.fields['Microsoft.VSTS.TCM.Steps'],
|
|
229
|
-
new Map<number, number>()
|
|
230
|
-
);
|
|
231
|
-
} else if (result!.stepDetailObject) {
|
|
232
|
-
testCase.steps = result!.stepDetailObject.stepList;
|
|
233
|
-
testCase.caseEvidenceAttachments = result!.stepDetailObject.caseEvidenceAttachments;
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
// Collect relation URLs for batch processing
|
|
237
|
-
if (test.relations) {
|
|
238
|
-
test.relations.forEach((relation: any) => {
|
|
239
|
-
if (relation.url.includes('/workItems/')) {
|
|
240
|
-
relationRequests.push({
|
|
241
|
-
url: relation.url,
|
|
242
|
-
testCaseIndex: index,
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
|
-
});
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
return testCase;
|
|
249
|
-
} catch (error) {
|
|
250
|
-
logger.error(`Error processing test case ${result!.testCaseId}: ${error}`);
|
|
251
|
-
return null;
|
|
174
|
+
for (let i = 0; i < testCases.count; i++) {
|
|
175
|
+
try {
|
|
176
|
+
let stepDetailObject =
|
|
177
|
+
stepResultDetailsMap?.get(testCases.value[i].testCase.id.toString()) || undefined;
|
|
178
|
+
|
|
179
|
+
let newurl = !stepDetailObject?.testCaseRevision
|
|
180
|
+
? testCases.value[i].testCase.url + '?$expand=All'
|
|
181
|
+
: `${testCases.value[i].testCase.url}/revisions/${stepDetailObject.testCaseRevision}?$expand=All`;
|
|
182
|
+
let test: any = await this.fetchWithCache(newurl);
|
|
183
|
+
let testCase: TestCase = new TestCase();
|
|
184
|
+
|
|
185
|
+
testCase.title = test.fields['System.Title'];
|
|
186
|
+
testCase.area = test.fields['System.AreaPath'];
|
|
187
|
+
testCase.description = test.fields['System.Description'];
|
|
188
|
+
testCase.url = url + test.id;
|
|
189
|
+
//testCase.steps = test.fields["Microsoft.VSTS.TCM.Steps"];
|
|
190
|
+
testCase.id = test.id;
|
|
191
|
+
testCase.suit = suite.id;
|
|
192
|
+
|
|
193
|
+
if (!stepDetailObject && test.fields['Microsoft.VSTS.TCM.Steps'] != null) {
|
|
194
|
+
let steps = await this.testStepParserHelper.parseTestSteps(
|
|
195
|
+
test.fields['Microsoft.VSTS.TCM.Steps'],
|
|
196
|
+
new Map<number, number>()
|
|
197
|
+
);
|
|
198
|
+
testCase.steps = steps;
|
|
199
|
+
//In case its already parsed during the STR
|
|
200
|
+
} else if (stepDetailObject) {
|
|
201
|
+
testCase.steps = stepDetailObject.stepList;
|
|
202
|
+
testCase.caseEvidenceAttachments = stepDetailObject.caseEvidenceAttachments;
|
|
252
203
|
}
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
);
|
|
292
|
-
|
|
293
|
-
const stringifiedTestCase = JSON.stringify({
|
|
294
|
-
id: testCase.id,
|
|
295
|
-
title: testCase.title,
|
|
296
|
-
});
|
|
297
|
-
const stringifiedRequirement = JSON.stringify(newRequirementRelation);
|
|
298
|
-
|
|
299
|
-
// Update trace maps
|
|
300
|
-
this.addToMap(requirementToTestCaseTraceMap, stringifiedRequirement, stringifiedTestCase);
|
|
301
|
-
this.addToMap(testCaseToRequirementsTraceMap, stringifiedTestCase, stringifiedRequirement);
|
|
302
|
-
|
|
303
|
-
// Add to test case relations if needed
|
|
304
|
-
if (includeRequirements) {
|
|
305
|
-
testCase.relations.push(newRequirementRelation);
|
|
204
|
+
if (test.relations) {
|
|
205
|
+
for (const relation of test.relations) {
|
|
206
|
+
// Only proceed if the URL contains 'workItems'
|
|
207
|
+
if (relation.url.includes('/workItems/')) {
|
|
208
|
+
try {
|
|
209
|
+
let relatedItemContent: any = await this.fetchWithCache(relation.url);
|
|
210
|
+
// Check if the WorkItemType is "Requirement" before adding to relations
|
|
211
|
+
if (relatedItemContent.fields['System.WorkItemType'] === 'Requirement') {
|
|
212
|
+
const newRequirementRelation = this.createNewRequirement(
|
|
213
|
+
CustomerRequirementId,
|
|
214
|
+
relatedItemContent
|
|
215
|
+
);
|
|
216
|
+
|
|
217
|
+
const stringifiedTestCase = JSON.stringify({
|
|
218
|
+
id: testCase.id,
|
|
219
|
+
title: testCase.title,
|
|
220
|
+
});
|
|
221
|
+
const stringifiedRequirement = JSON.stringify(newRequirementRelation);
|
|
222
|
+
|
|
223
|
+
// Add the test case to the requirement-to-test-case trace map
|
|
224
|
+
this.addToMap(requirementToTestCaseTraceMap, stringifiedRequirement, stringifiedTestCase);
|
|
225
|
+
|
|
226
|
+
// Add the requirement to the test-case-to-requirements trace map
|
|
227
|
+
this.addToMap(
|
|
228
|
+
testCaseToRequirementsTraceMap,
|
|
229
|
+
stringifiedTestCase,
|
|
230
|
+
stringifiedRequirement
|
|
231
|
+
);
|
|
232
|
+
|
|
233
|
+
if (includeRequirements) {
|
|
234
|
+
testCase.relations.push(newRequirementRelation);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
} catch (fetchError) {
|
|
238
|
+
// Log error silently or handle as needed
|
|
239
|
+
console.error('Failed to fetch relation content', fetchError);
|
|
240
|
+
logger.error(`Failed to fetch relation content for URL ${relation.url}: ${fetchError}`);
|
|
241
|
+
}
|
|
306
242
|
}
|
|
307
243
|
}
|
|
308
|
-
}
|
|
244
|
+
}
|
|
245
|
+
testCasesUrlList.push(testCase);
|
|
246
|
+
} catch {
|
|
247
|
+
const errorMsg = `ran into an issue while retrieving testCase ${testCases.value[i].testCase.id}`;
|
|
248
|
+
logger.error(`Error: ${errorMsg}`);
|
|
249
|
+
throw new Error(errorMsg);
|
|
250
|
+
}
|
|
309
251
|
}
|
|
310
|
-
|
|
311
|
-
// Add all valid test cases to the result list
|
|
312
|
-
testCasesUrlList.push(...validTestCases);
|
|
313
252
|
} catch (err: any) {
|
|
314
|
-
logger.error(`Error: ${err.message} while
|
|
253
|
+
logger.error(`Error: ${err.message} while trying to structure testCases for test suite ${suite.id}`);
|
|
315
254
|
}
|
|
316
255
|
|
|
317
|
-
logger.info(
|
|
318
|
-
`StructureTestCase for suite ${suite.id} completed with ${testCasesUrlList.length} test cases`
|
|
319
|
-
);
|
|
320
256
|
return testCasesUrlList;
|
|
321
257
|
}
|
|
322
258
|
|