@elisra-devops/docgen-data-provider 1.76.0 → 1.78.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.
- package/bin/modules/ResultDataProvider.js +89 -2
- package/bin/modules/ResultDataProvider.js.map +1 -1
- package/bin/utils/mewpExternalIngestionUtils.js +85 -13
- package/bin/utils/mewpExternalIngestionUtils.js.map +1 -1
- package/package.json +1 -1
- package/src/modules/ResultDataProvider.ts +120 -0
- package/src/utils/mewpExternalIngestionUtils.ts +96 -17
|
@@ -6,9 +6,20 @@ class MewpExternalIngestionUtils {
|
|
|
6
6
|
this.externalTableUtils = externalTableUtils;
|
|
7
7
|
}
|
|
8
8
|
async loadExternalBugsByTestCase(externalBugsFile, adapters) {
|
|
9
|
+
var _a;
|
|
9
10
|
const rows = await this.externalTableUtils.loadExternalTableRows(externalBugsFile, 'bugs');
|
|
10
|
-
|
|
11
|
+
const sourceName = String((externalBugsFile === null || externalBugsFile === void 0 ? void 0 : externalBugsFile.name) || (externalBugsFile === null || externalBugsFile === void 0 ? void 0 : externalBugsFile.objectName) || (externalBugsFile === null || externalBugsFile === void 0 ? void 0 : externalBugsFile.text) || (externalBugsFile === null || externalBugsFile === void 0 ? void 0 : externalBugsFile.url) || '').trim();
|
|
12
|
+
if (rows.length === 0) {
|
|
13
|
+
if (sourceName) {
|
|
14
|
+
logger_1.default.warn(`MEWP external bugs ingestion: source '${sourceName}' loaded with 0 data rows.`);
|
|
15
|
+
}
|
|
11
16
|
return new Map();
|
|
17
|
+
}
|
|
18
|
+
logger_1.default.info(`MEWP external bugs ingestion: start source='${sourceName || 'unknown'}' rows=${rows.length}`);
|
|
19
|
+
let skippedMissingTestCaseId = 0;
|
|
20
|
+
let skippedMissingRequirement = 0;
|
|
21
|
+
let skippedMissingBugId = 0;
|
|
22
|
+
let skippedOutOfScopeState = 0;
|
|
12
23
|
const map = new Map();
|
|
13
24
|
let parsedRows = 0;
|
|
14
25
|
for (const row of rows) {
|
|
@@ -17,11 +28,15 @@ class MewpExternalIngestionUtils {
|
|
|
17
28
|
'Elisra SortIndex',
|
|
18
29
|
'ElisraSortIndex',
|
|
19
30
|
]));
|
|
20
|
-
if (!testCaseId)
|
|
31
|
+
if (!testCaseId) {
|
|
32
|
+
skippedMissingTestCaseId += 1;
|
|
21
33
|
continue;
|
|
34
|
+
}
|
|
22
35
|
const requirementBaseKey = adapters.toRequirementKey(adapters.toComparableText(this.externalTableUtils.readExternalCell(row, ['SR'])));
|
|
23
|
-
if (!requirementBaseKey)
|
|
36
|
+
if (!requirementBaseKey) {
|
|
37
|
+
skippedMissingRequirement += 1;
|
|
24
38
|
continue;
|
|
39
|
+
}
|
|
25
40
|
const bugId = this.toPositiveNumber(this.externalTableUtils.readExternalCell(row, [
|
|
26
41
|
'TargetWorkItemId',
|
|
27
42
|
'Bug ID',
|
|
@@ -29,11 +44,15 @@ class MewpExternalIngestionUtils {
|
|
|
29
44
|
'Links.TargetWorkItem.WorkItemId',
|
|
30
45
|
'Links TargetWorkItem WorkItemId',
|
|
31
46
|
])) || 0;
|
|
32
|
-
if (!bugId)
|
|
47
|
+
if (!bugId) {
|
|
48
|
+
skippedMissingBugId += 1;
|
|
33
49
|
continue;
|
|
50
|
+
}
|
|
34
51
|
const bugState = adapters.toComparableText(this.externalTableUtils.readExternalCell(row, ['TargetState', 'State']));
|
|
35
|
-
if (!adapters.isExternalStateInScope(bugState, 'bug'))
|
|
52
|
+
if (!adapters.isExternalStateInScope(bugState, 'bug')) {
|
|
53
|
+
skippedOutOfScopeState += 1;
|
|
36
54
|
continue;
|
|
55
|
+
}
|
|
37
56
|
const bugTitle = adapters.toComparableText(this.externalTableUtils.readExternalCell(row, ['Bug Title', 'Title', 'Links.TargetWorkItem.Title']));
|
|
38
57
|
const bugResponsibilityRaw = adapters.toComparableText(this.externalTableUtils.readExternalCell(row, [
|
|
39
58
|
'Responsibility',
|
|
@@ -55,6 +74,7 @@ class MewpExternalIngestionUtils {
|
|
|
55
74
|
parsedRows += 1;
|
|
56
75
|
}
|
|
57
76
|
const deduped = new Map();
|
|
77
|
+
let dedupedRows = 0;
|
|
58
78
|
for (const [testCaseId, bugs] of map.entries()) {
|
|
59
79
|
const byId = new Map();
|
|
60
80
|
for (const bug of bugs || []) {
|
|
@@ -81,18 +101,32 @@ class MewpExternalIngestionUtils {
|
|
|
81
101
|
return idCompare;
|
|
82
102
|
return String(a.requirementBaseKey || '').localeCompare(String(b.requirementBaseKey || ''));
|
|
83
103
|
}));
|
|
104
|
+
dedupedRows += ((_a = deduped.get(testCaseId)) === null || _a === void 0 ? void 0 : _a.length) || 0;
|
|
84
105
|
}
|
|
85
106
|
if (parsedRows === 0) {
|
|
86
107
|
logger_1.default.warn(`External bugs source was loaded but no valid rows were parsed. ` +
|
|
87
108
|
`Expected columns include Elisra_SortIndex, SR and bug ID fields.`);
|
|
88
109
|
}
|
|
110
|
+
logger_1.default.info(`MEWP external bugs ingestion: done source='${sourceName || 'unknown'}' ` +
|
|
111
|
+
`rows=${rows.length} parsed=${parsedRows} deduped=${dedupedRows} ` +
|
|
112
|
+
`testCases=${deduped.size} ` +
|
|
113
|
+
`skippedMissingTestCaseId=${skippedMissingTestCaseId} ` +
|
|
114
|
+
`skippedMissingRequirement=${skippedMissingRequirement} ` +
|
|
115
|
+
`skippedMissingBugId=${skippedMissingBugId} ` +
|
|
116
|
+
`skippedOutOfScopeState=${skippedOutOfScopeState}`);
|
|
89
117
|
return deduped;
|
|
90
118
|
}
|
|
91
119
|
async loadExternalL3L4ByBaseKey(externalL3L4File, adapters) {
|
|
92
120
|
var _a;
|
|
93
121
|
const rows = await this.externalTableUtils.loadExternalTableRows(externalL3L4File, 'l3l4');
|
|
94
|
-
|
|
122
|
+
const sourceName = String((externalL3L4File === null || externalL3L4File === void 0 ? void 0 : externalL3L4File.name) || (externalL3L4File === null || externalL3L4File === void 0 ? void 0 : externalL3L4File.objectName) || (externalL3L4File === null || externalL3L4File === void 0 ? void 0 : externalL3L4File.text) || (externalL3L4File === null || externalL3L4File === void 0 ? void 0 : externalL3L4File.url) || '').trim();
|
|
123
|
+
if (rows.length === 0) {
|
|
124
|
+
if (sourceName) {
|
|
125
|
+
logger_1.default.warn(`MEWP external L3/L4 ingestion: source '${sourceName}' loaded with 0 data rows.`);
|
|
126
|
+
}
|
|
95
127
|
return new Map();
|
|
128
|
+
}
|
|
129
|
+
logger_1.default.info(`MEWP external L3/L4 ingestion: start source='${sourceName || 'unknown'}' rows=${rows.length}`);
|
|
96
130
|
const linksByBaseKey = new Map();
|
|
97
131
|
const addLink = (baseKey, level, id, title) => {
|
|
98
132
|
if (!baseKey || !id)
|
|
@@ -109,11 +143,18 @@ class MewpExternalIngestionUtils {
|
|
|
109
143
|
});
|
|
110
144
|
};
|
|
111
145
|
let parsedRows = 0;
|
|
146
|
+
let skippedMissingRequirement = 0;
|
|
147
|
+
let acceptedL3 = 0;
|
|
148
|
+
let acceptedL4 = 0;
|
|
149
|
+
let filteredByState = 0;
|
|
150
|
+
let filteredBySapWbs = 0;
|
|
112
151
|
for (const row of rows) {
|
|
113
152
|
const srRaw = adapters.toComparableText(this.externalTableUtils.readExternalCell(row, ['SR']));
|
|
114
153
|
const baseKey = adapters.toRequirementKey(srRaw);
|
|
115
|
-
if (!baseKey)
|
|
154
|
+
if (!baseKey) {
|
|
155
|
+
skippedMissingRequirement += 1;
|
|
116
156
|
continue;
|
|
157
|
+
}
|
|
117
158
|
const requirementSapWbsFallback = ((_a = adapters.resolveRequirementSapWbsByBaseKey) === null || _a === void 0 ? void 0 : _a.call(adapters, baseKey)) || '';
|
|
118
159
|
const area = adapters
|
|
119
160
|
.toComparableText(this.externalTableUtils.readExternalCell(row, ['AREA 34', 'AREA34']))
|
|
@@ -152,25 +193,50 @@ class MewpExternalIngestionUtils {
|
|
|
152
193
|
]));
|
|
153
194
|
if (area.includes('level 4')) {
|
|
154
195
|
const effectiveSapWbsLevel3 = targetSapWbsLevel3 || requirementSapWbsFallback;
|
|
196
|
+
if (!targetIdLevel3) {
|
|
197
|
+
parsedRows += 1;
|
|
198
|
+
continue;
|
|
199
|
+
}
|
|
200
|
+
if (!adapters.isExternalStateInScope(targetStateLevel3, 'requirement')) {
|
|
201
|
+
filteredByState += 1;
|
|
202
|
+
parsedRows += 1;
|
|
203
|
+
continue;
|
|
204
|
+
}
|
|
205
|
+
if (adapters.isExcludedL3L4BySapWbs(effectiveSapWbsLevel3)) {
|
|
206
|
+
filteredBySapWbs += 1;
|
|
207
|
+
parsedRows += 1;
|
|
208
|
+
continue;
|
|
209
|
+
}
|
|
155
210
|
if (targetIdLevel3 &&
|
|
156
211
|
adapters.isExternalStateInScope(targetStateLevel3, 'requirement') &&
|
|
157
212
|
!adapters.isExcludedL3L4BySapWbs(effectiveSapWbsLevel3)) {
|
|
158
213
|
addLink(baseKey, 'L4', targetIdLevel3, targetTitleLevel3);
|
|
214
|
+
acceptedL4 += 1;
|
|
159
215
|
}
|
|
160
216
|
parsedRows += 1;
|
|
161
217
|
continue;
|
|
162
218
|
}
|
|
163
219
|
const effectiveSapWbsLevel3 = targetSapWbsLevel3 || requirementSapWbsFallback;
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
220
|
+
const allowLevel3State = adapters.isExternalStateInScope(targetStateLevel3, 'requirement');
|
|
221
|
+
const allowLevel3SapWbs = !adapters.isExcludedL3L4BySapWbs(effectiveSapWbsLevel3);
|
|
222
|
+
if (!allowLevel3State)
|
|
223
|
+
filteredByState += 1;
|
|
224
|
+
if (!allowLevel3SapWbs)
|
|
225
|
+
filteredBySapWbs += 1;
|
|
226
|
+
if (targetIdLevel3 && allowLevel3State && allowLevel3SapWbs) {
|
|
167
227
|
addLink(baseKey, 'L3', targetIdLevel3, targetTitleLevel3);
|
|
228
|
+
acceptedL3 += 1;
|
|
168
229
|
}
|
|
169
230
|
const effectiveSapWbsLevel4 = targetSapWbsLevel4 || requirementSapWbsFallback;
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
231
|
+
const allowLevel4State = adapters.isExternalStateInScope(targetStateLevel4, 'requirement');
|
|
232
|
+
const allowLevel4SapWbs = !adapters.isExcludedL3L4BySapWbs(effectiveSapWbsLevel4);
|
|
233
|
+
if (!allowLevel4State)
|
|
234
|
+
filteredByState += 1;
|
|
235
|
+
if (!allowLevel4SapWbs)
|
|
236
|
+
filteredBySapWbs += 1;
|
|
237
|
+
if (targetIdLevel4 && allowLevel4State && allowLevel4SapWbs) {
|
|
173
238
|
addLink(baseKey, 'L4', targetIdLevel4, targetTitleLevel4);
|
|
239
|
+
acceptedL4 += 1;
|
|
174
240
|
}
|
|
175
241
|
parsedRows += 1;
|
|
176
242
|
}
|
|
@@ -186,6 +252,12 @@ class MewpExternalIngestionUtils {
|
|
|
186
252
|
logger_1.default.warn(`External L3/L4 source was loaded but no valid rows were parsed. ` +
|
|
187
253
|
`Expected columns include SR, AREA 34, target IDs/titles/states.`);
|
|
188
254
|
}
|
|
255
|
+
const totalLinks = [...out.values()].reduce((sum, items) => sum + ((items === null || items === void 0 ? void 0 : items.length) || 0), 0);
|
|
256
|
+
logger_1.default.info(`MEWP external L3/L4 ingestion: done source='${sourceName || 'unknown'}' ` +
|
|
257
|
+
`rows=${rows.length} parsed=${parsedRows} baseKeys=${out.size} links=${totalLinks} ` +
|
|
258
|
+
`acceptedL3=${acceptedL3} acceptedL4=${acceptedL4} ` +
|
|
259
|
+
`skippedMissingRequirement=${skippedMissingRequirement} ` +
|
|
260
|
+
`filteredByState=${filteredByState} filteredBySapWbs=${filteredBySapWbs}`);
|
|
189
261
|
return out;
|
|
190
262
|
}
|
|
191
263
|
toPositiveNumber(value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mewpExternalIngestionUtils.js","sourceRoot":"","sources":["../../src/utils/mewpExternalIngestionUtils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mewpExternalIngestionUtils.js","sourceRoot":"","sources":["../../src/utils/mewpExternalIngestionUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -478,6 +478,45 @@ export default class ResultDataProvider {
|
|
|
478
478
|
options?.externalL3L4File,
|
|
479
479
|
requirementSapWbsByBaseKey
|
|
480
480
|
);
|
|
481
|
+
const hasExternalBugsFile = !!String(
|
|
482
|
+
options?.externalBugsFile?.name ||
|
|
483
|
+
options?.externalBugsFile?.objectName ||
|
|
484
|
+
options?.externalBugsFile?.text ||
|
|
485
|
+
options?.externalBugsFile?.url ||
|
|
486
|
+
''
|
|
487
|
+
).trim();
|
|
488
|
+
const hasExternalL3L4File = !!String(
|
|
489
|
+
options?.externalL3L4File?.name ||
|
|
490
|
+
options?.externalL3L4File?.objectName ||
|
|
491
|
+
options?.externalL3L4File?.text ||
|
|
492
|
+
options?.externalL3L4File?.url ||
|
|
493
|
+
''
|
|
494
|
+
).trim();
|
|
495
|
+
const externalBugLinksCount = [...externalBugsByTestCase.values()].reduce(
|
|
496
|
+
(sum, items) => sum + (Array.isArray(items) ? items.length : 0),
|
|
497
|
+
0
|
|
498
|
+
);
|
|
499
|
+
const externalL3L4LinksCount = [...externalL3L4ByBaseKey.values()].reduce(
|
|
500
|
+
(sum, items) => sum + (Array.isArray(items) ? items.length : 0),
|
|
501
|
+
0
|
|
502
|
+
);
|
|
503
|
+
logger.info(
|
|
504
|
+
`MEWP coverage external ingestion summary: ` +
|
|
505
|
+
`bugsFileProvided=${hasExternalBugsFile} bugsTestCases=${externalBugsByTestCase.size} bugsLinks=${externalBugLinksCount}; ` +
|
|
506
|
+
`l3l4FileProvided=${hasExternalL3L4File} l3l4BaseKeys=${externalL3L4ByBaseKey.size} l3l4Links=${externalL3L4LinksCount}`
|
|
507
|
+
);
|
|
508
|
+
if (hasExternalBugsFile && externalBugLinksCount === 0) {
|
|
509
|
+
logger.warn(
|
|
510
|
+
`MEWP coverage: external bugs file was provided but produced 0 links. ` +
|
|
511
|
+
`Check SR/test-case/state values in ingestion logs.`
|
|
512
|
+
);
|
|
513
|
+
}
|
|
514
|
+
if (hasExternalL3L4File && externalL3L4LinksCount === 0) {
|
|
515
|
+
logger.warn(
|
|
516
|
+
`MEWP coverage: external L3/L4 file was provided but produced 0 links. ` +
|
|
517
|
+
`Check SR/AREA34/state/SAPWBS filters in ingestion logs.`
|
|
518
|
+
);
|
|
519
|
+
}
|
|
481
520
|
if (requirements.length === 0) {
|
|
482
521
|
return {
|
|
483
522
|
...defaultPayload,
|
|
@@ -559,6 +598,69 @@ export default class ResultDataProvider {
|
|
|
559
598
|
);
|
|
560
599
|
}
|
|
561
600
|
|
|
601
|
+
const requirementBaseKeys = new Set<string>(
|
|
602
|
+
requirements.map((item) => String(item?.baseKey || '').trim()).filter((item) => !!item)
|
|
603
|
+
);
|
|
604
|
+
const externalL3L4BaseKeys = new Set<string>([...externalL3L4ByBaseKey.keys()]);
|
|
605
|
+
const externalL3L4OverlapKeys = [...externalL3L4BaseKeys].filter((key) => requirementBaseKeys.has(key));
|
|
606
|
+
const failedRequirementBaseKeys = new Set<string>();
|
|
607
|
+
const failedTestCaseIds = new Set<number>();
|
|
608
|
+
for (const [requirementBaseKey, byTestCase] of requirementIndex.entries()) {
|
|
609
|
+
for (const [testCaseId, counts] of byTestCase.entries()) {
|
|
610
|
+
if (Number(counts?.failed || 0) > 0) {
|
|
611
|
+
failedRequirementBaseKeys.add(requirementBaseKey);
|
|
612
|
+
failedTestCaseIds.add(testCaseId);
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
const externalBugTestCaseIds = new Set<number>([...externalBugsByTestCase.keys()]);
|
|
617
|
+
const externalBugFailedTestCaseOverlap = [...externalBugTestCaseIds].filter((id) =>
|
|
618
|
+
failedTestCaseIds.has(id)
|
|
619
|
+
);
|
|
620
|
+
const externalBugBaseKeys = new Set<string>();
|
|
621
|
+
for (const bugs of externalBugsByTestCase.values()) {
|
|
622
|
+
for (const bug of bugs || []) {
|
|
623
|
+
const key = String(bug?.requirementBaseKey || '').trim();
|
|
624
|
+
if (key) externalBugBaseKeys.add(key);
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
const externalBugRequirementOverlap = [...externalBugBaseKeys].filter((key) =>
|
|
628
|
+
requirementBaseKeys.has(key)
|
|
629
|
+
);
|
|
630
|
+
const externalBugFailedRequirementOverlap = [...externalBugBaseKeys].filter((key) =>
|
|
631
|
+
failedRequirementBaseKeys.has(key)
|
|
632
|
+
);
|
|
633
|
+
logger.info(
|
|
634
|
+
`MEWP coverage join diagnostics: requirementBaseKeys=${requirementBaseKeys.size} ` +
|
|
635
|
+
`failedRequirementBaseKeys=${failedRequirementBaseKeys.size} failedTestCases=${failedTestCaseIds.size}; ` +
|
|
636
|
+
`externalL3L4BaseKeys=${externalL3L4BaseKeys.size} externalL3L4Overlap=${externalL3L4OverlapKeys.length}; ` +
|
|
637
|
+
`externalBugTestCases=${externalBugTestCaseIds.size} externalBugFailedTestCaseOverlap=${externalBugFailedTestCaseOverlap.length}; ` +
|
|
638
|
+
`externalBugBaseKeys=${externalBugBaseKeys.size} externalBugRequirementOverlap=${externalBugRequirementOverlap.length} ` +
|
|
639
|
+
`externalBugFailedRequirementOverlap=${externalBugFailedRequirementOverlap.length}`
|
|
640
|
+
);
|
|
641
|
+
if (externalL3L4BaseKeys.size > 0 && externalL3L4OverlapKeys.length === 0) {
|
|
642
|
+
const sampleReq = [...requirementBaseKeys].slice(0, 5);
|
|
643
|
+
const sampleExt = [...externalL3L4BaseKeys].slice(0, 5);
|
|
644
|
+
logger.warn(
|
|
645
|
+
`MEWP coverage join diagnostics: no L3/L4 key overlap found. ` +
|
|
646
|
+
`sampleRequirementKeys=${sampleReq.join(', ')} sampleExternalL3L4Keys=${sampleExt.join(', ')}`
|
|
647
|
+
);
|
|
648
|
+
}
|
|
649
|
+
if (externalBugBaseKeys.size > 0 && externalBugRequirementOverlap.length === 0) {
|
|
650
|
+
const sampleReq = [...requirementBaseKeys].slice(0, 5);
|
|
651
|
+
const sampleExt = [...externalBugBaseKeys].slice(0, 5);
|
|
652
|
+
logger.warn(
|
|
653
|
+
`MEWP coverage join diagnostics: no bug requirement-key overlap found. ` +
|
|
654
|
+
`sampleRequirementKeys=${sampleReq.join(', ')} sampleExternalBugKeys=${sampleExt.join(', ')}`
|
|
655
|
+
);
|
|
656
|
+
}
|
|
657
|
+
if (externalBugTestCaseIds.size > 0 && externalBugFailedTestCaseOverlap.length === 0) {
|
|
658
|
+
logger.warn(
|
|
659
|
+
`MEWP coverage join diagnostics: no overlap between external bug test cases and failed test cases. ` +
|
|
660
|
+
`Bug rows remain empty because bugs are shown only for failed L2s.`
|
|
661
|
+
);
|
|
662
|
+
}
|
|
663
|
+
|
|
562
664
|
const rows = this.buildMewpCoverageRows(
|
|
563
665
|
requirements,
|
|
564
666
|
requirementIndex,
|
|
@@ -567,6 +669,24 @@ export default class ResultDataProvider {
|
|
|
567
669
|
externalL3L4ByBaseKey,
|
|
568
670
|
externalBugsByTestCase
|
|
569
671
|
);
|
|
672
|
+
const coverageRowStats = rows.reduce(
|
|
673
|
+
(acc, row) => {
|
|
674
|
+
const hasBug = Number(row?.['Bug ID'] || 0) > 0;
|
|
675
|
+
const hasL3 = String(row?.['L3 REQ ID'] || '').trim() !== '';
|
|
676
|
+
const hasL4 = String(row?.['L4 REQ ID'] || '').trim() !== '';
|
|
677
|
+
if (hasBug) acc.bugRows += 1;
|
|
678
|
+
if (hasL3) acc.l3Rows += 1;
|
|
679
|
+
if (hasL4) acc.l4Rows += 1;
|
|
680
|
+
if (!hasBug && !hasL3 && !hasL4) acc.baseOnlyRows += 1;
|
|
681
|
+
return acc;
|
|
682
|
+
},
|
|
683
|
+
{ bugRows: 0, l3Rows: 0, l4Rows: 0, baseOnlyRows: 0 }
|
|
684
|
+
);
|
|
685
|
+
logger.info(
|
|
686
|
+
`MEWP coverage output summary: requirements=${requirements.length} rows=${rows.length} ` +
|
|
687
|
+
`bugRows=${coverageRowStats.bugRows} l3Rows=${coverageRowStats.l3Rows} ` +
|
|
688
|
+
`l4Rows=${coverageRowStats.l4Rows} baseOnlyRows=${coverageRowStats.baseOnlyRows}`
|
|
689
|
+
);
|
|
570
690
|
|
|
571
691
|
return {
|
|
572
692
|
sheetName: this.buildMewpCoverageSheetName(planName, testPlanId),
|
|
@@ -27,7 +27,21 @@ export default class MewpExternalIngestionUtils {
|
|
|
27
27
|
adapters: MewpExternalIngestionAdapters
|
|
28
28
|
): Promise<Map<number, MewpBugLink[]>> {
|
|
29
29
|
const rows = await this.externalTableUtils.loadExternalTableRows(externalBugsFile, 'bugs');
|
|
30
|
-
|
|
30
|
+
const sourceName = String(
|
|
31
|
+
externalBugsFile?.name || externalBugsFile?.objectName || externalBugsFile?.text || externalBugsFile?.url || ''
|
|
32
|
+
).trim();
|
|
33
|
+
if (rows.length === 0) {
|
|
34
|
+
if (sourceName) {
|
|
35
|
+
logger.warn(`MEWP external bugs ingestion: source '${sourceName}' loaded with 0 data rows.`);
|
|
36
|
+
}
|
|
37
|
+
return new Map<number, MewpBugLink[]>();
|
|
38
|
+
}
|
|
39
|
+
logger.info(`MEWP external bugs ingestion: start source='${sourceName || 'unknown'}' rows=${rows.length}`);
|
|
40
|
+
|
|
41
|
+
let skippedMissingTestCaseId = 0;
|
|
42
|
+
let skippedMissingRequirement = 0;
|
|
43
|
+
let skippedMissingBugId = 0;
|
|
44
|
+
let skippedOutOfScopeState = 0;
|
|
31
45
|
|
|
32
46
|
const map = new Map<number, MewpBugLink[]>();
|
|
33
47
|
let parsedRows = 0;
|
|
@@ -39,11 +53,17 @@ export default class MewpExternalIngestionUtils {
|
|
|
39
53
|
'ElisraSortIndex',
|
|
40
54
|
])
|
|
41
55
|
);
|
|
42
|
-
if (!testCaseId)
|
|
56
|
+
if (!testCaseId) {
|
|
57
|
+
skippedMissingTestCaseId += 1;
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
43
60
|
const requirementBaseKey = adapters.toRequirementKey(
|
|
44
61
|
adapters.toComparableText(this.externalTableUtils.readExternalCell(row, ['SR']))
|
|
45
62
|
);
|
|
46
|
-
if (!requirementBaseKey)
|
|
63
|
+
if (!requirementBaseKey) {
|
|
64
|
+
skippedMissingRequirement += 1;
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
47
67
|
|
|
48
68
|
const bugId =
|
|
49
69
|
this.toPositiveNumber(
|
|
@@ -55,12 +75,18 @@ export default class MewpExternalIngestionUtils {
|
|
|
55
75
|
'Links TargetWorkItem WorkItemId',
|
|
56
76
|
])
|
|
57
77
|
) || 0;
|
|
58
|
-
if (!bugId)
|
|
78
|
+
if (!bugId) {
|
|
79
|
+
skippedMissingBugId += 1;
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
59
82
|
|
|
60
83
|
const bugState = adapters.toComparableText(
|
|
61
84
|
this.externalTableUtils.readExternalCell(row, ['TargetState', 'State'])
|
|
62
85
|
);
|
|
63
|
-
if (!adapters.isExternalStateInScope(bugState, 'bug'))
|
|
86
|
+
if (!adapters.isExternalStateInScope(bugState, 'bug')) {
|
|
87
|
+
skippedOutOfScopeState += 1;
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
64
90
|
|
|
65
91
|
const bugTitle = adapters.toComparableText(
|
|
66
92
|
this.externalTableUtils.readExternalCell(row, ['Bug Title', 'Title', 'Links.TargetWorkItem.Title'])
|
|
@@ -89,6 +115,7 @@ export default class MewpExternalIngestionUtils {
|
|
|
89
115
|
}
|
|
90
116
|
|
|
91
117
|
const deduped = new Map<number, MewpBugLink[]>();
|
|
118
|
+
let dedupedRows = 0;
|
|
92
119
|
for (const [testCaseId, bugs] of map.entries()) {
|
|
93
120
|
const byId = new Map<string, MewpBugLink>();
|
|
94
121
|
for (const bug of bugs || []) {
|
|
@@ -117,6 +144,7 @@ export default class MewpExternalIngestionUtils {
|
|
|
117
144
|
return String(a.requirementBaseKey || '').localeCompare(String(b.requirementBaseKey || ''));
|
|
118
145
|
})
|
|
119
146
|
);
|
|
147
|
+
dedupedRows += deduped.get(testCaseId)?.length || 0;
|
|
120
148
|
}
|
|
121
149
|
|
|
122
150
|
if (parsedRows === 0) {
|
|
@@ -125,6 +153,15 @@ export default class MewpExternalIngestionUtils {
|
|
|
125
153
|
`Expected columns include Elisra_SortIndex, SR and bug ID fields.`
|
|
126
154
|
);
|
|
127
155
|
}
|
|
156
|
+
logger.info(
|
|
157
|
+
`MEWP external bugs ingestion: done source='${sourceName || 'unknown'}' ` +
|
|
158
|
+
`rows=${rows.length} parsed=${parsedRows} deduped=${dedupedRows} ` +
|
|
159
|
+
`testCases=${deduped.size} ` +
|
|
160
|
+
`skippedMissingTestCaseId=${skippedMissingTestCaseId} ` +
|
|
161
|
+
`skippedMissingRequirement=${skippedMissingRequirement} ` +
|
|
162
|
+
`skippedMissingBugId=${skippedMissingBugId} ` +
|
|
163
|
+
`skippedOutOfScopeState=${skippedOutOfScopeState}`
|
|
164
|
+
);
|
|
128
165
|
|
|
129
166
|
return deduped;
|
|
130
167
|
}
|
|
@@ -134,7 +171,16 @@ export default class MewpExternalIngestionUtils {
|
|
|
134
171
|
adapters: MewpExternalIngestionAdapters
|
|
135
172
|
): Promise<Map<string, MewpL3L4Link[]>> {
|
|
136
173
|
const rows = await this.externalTableUtils.loadExternalTableRows(externalL3L4File, 'l3l4');
|
|
137
|
-
|
|
174
|
+
const sourceName = String(
|
|
175
|
+
externalL3L4File?.name || externalL3L4File?.objectName || externalL3L4File?.text || externalL3L4File?.url || ''
|
|
176
|
+
).trim();
|
|
177
|
+
if (rows.length === 0) {
|
|
178
|
+
if (sourceName) {
|
|
179
|
+
logger.warn(`MEWP external L3/L4 ingestion: source '${sourceName}' loaded with 0 data rows.`);
|
|
180
|
+
}
|
|
181
|
+
return new Map<string, MewpL3L4Link[]>();
|
|
182
|
+
}
|
|
183
|
+
logger.info(`MEWP external L3/L4 ingestion: start source='${sourceName || 'unknown'}' rows=${rows.length}`);
|
|
138
184
|
|
|
139
185
|
const linksByBaseKey = new Map<string, Map<string, MewpL3L4Link>>();
|
|
140
186
|
const addLink = (baseKey: string, level: 'L3' | 'L4', id: number, title: string) => {
|
|
@@ -152,10 +198,18 @@ export default class MewpExternalIngestionUtils {
|
|
|
152
198
|
};
|
|
153
199
|
|
|
154
200
|
let parsedRows = 0;
|
|
201
|
+
let skippedMissingRequirement = 0;
|
|
202
|
+
let acceptedL3 = 0;
|
|
203
|
+
let acceptedL4 = 0;
|
|
204
|
+
let filteredByState = 0;
|
|
205
|
+
let filteredBySapWbs = 0;
|
|
155
206
|
for (const row of rows) {
|
|
156
207
|
const srRaw = adapters.toComparableText(this.externalTableUtils.readExternalCell(row, ['SR']));
|
|
157
208
|
const baseKey = adapters.toRequirementKey(srRaw);
|
|
158
|
-
if (!baseKey)
|
|
209
|
+
if (!baseKey) {
|
|
210
|
+
skippedMissingRequirement += 1;
|
|
211
|
+
continue;
|
|
212
|
+
}
|
|
159
213
|
const requirementSapWbsFallback = adapters.resolveRequirementSapWbsByBaseKey?.(baseKey) || '';
|
|
160
214
|
|
|
161
215
|
const area = adapters
|
|
@@ -212,32 +266,49 @@ export default class MewpExternalIngestionUtils {
|
|
|
212
266
|
|
|
213
267
|
if (area.includes('level 4')) {
|
|
214
268
|
const effectiveSapWbsLevel3 = targetSapWbsLevel3 || requirementSapWbsFallback;
|
|
269
|
+
if (!targetIdLevel3) {
|
|
270
|
+
parsedRows += 1;
|
|
271
|
+
continue;
|
|
272
|
+
}
|
|
273
|
+
if (!adapters.isExternalStateInScope(targetStateLevel3, 'requirement')) {
|
|
274
|
+
filteredByState += 1;
|
|
275
|
+
parsedRows += 1;
|
|
276
|
+
continue;
|
|
277
|
+
}
|
|
278
|
+
if (adapters.isExcludedL3L4BySapWbs(effectiveSapWbsLevel3)) {
|
|
279
|
+
filteredBySapWbs += 1;
|
|
280
|
+
parsedRows += 1;
|
|
281
|
+
continue;
|
|
282
|
+
}
|
|
215
283
|
if (
|
|
216
284
|
targetIdLevel3 &&
|
|
217
285
|
adapters.isExternalStateInScope(targetStateLevel3, 'requirement') &&
|
|
218
286
|
!adapters.isExcludedL3L4BySapWbs(effectiveSapWbsLevel3)
|
|
219
287
|
) {
|
|
220
288
|
addLink(baseKey, 'L4', targetIdLevel3, targetTitleLevel3);
|
|
289
|
+
acceptedL4 += 1;
|
|
221
290
|
}
|
|
222
291
|
parsedRows += 1;
|
|
223
292
|
continue;
|
|
224
293
|
}
|
|
225
294
|
|
|
226
295
|
const effectiveSapWbsLevel3 = targetSapWbsLevel3 || requirementSapWbsFallback;
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
) {
|
|
296
|
+
const allowLevel3State = adapters.isExternalStateInScope(targetStateLevel3, 'requirement');
|
|
297
|
+
const allowLevel3SapWbs = !adapters.isExcludedL3L4BySapWbs(effectiveSapWbsLevel3);
|
|
298
|
+
if (!allowLevel3State) filteredByState += 1;
|
|
299
|
+
if (!allowLevel3SapWbs) filteredBySapWbs += 1;
|
|
300
|
+
if (targetIdLevel3 && allowLevel3State && allowLevel3SapWbs) {
|
|
232
301
|
addLink(baseKey, 'L3', targetIdLevel3, targetTitleLevel3);
|
|
302
|
+
acceptedL3 += 1;
|
|
233
303
|
}
|
|
234
304
|
const effectiveSapWbsLevel4 = targetSapWbsLevel4 || requirementSapWbsFallback;
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
) {
|
|
305
|
+
const allowLevel4State = adapters.isExternalStateInScope(targetStateLevel4, 'requirement');
|
|
306
|
+
const allowLevel4SapWbs = !adapters.isExcludedL3L4BySapWbs(effectiveSapWbsLevel4);
|
|
307
|
+
if (!allowLevel4State) filteredByState += 1;
|
|
308
|
+
if (!allowLevel4SapWbs) filteredBySapWbs += 1;
|
|
309
|
+
if (targetIdLevel4 && allowLevel4State && allowLevel4SapWbs) {
|
|
240
310
|
addLink(baseKey, 'L4', targetIdLevel4, targetTitleLevel4);
|
|
311
|
+
acceptedL4 += 1;
|
|
241
312
|
}
|
|
242
313
|
parsedRows += 1;
|
|
243
314
|
}
|
|
@@ -259,6 +330,14 @@ export default class MewpExternalIngestionUtils {
|
|
|
259
330
|
`Expected columns include SR, AREA 34, target IDs/titles/states.`
|
|
260
331
|
);
|
|
261
332
|
}
|
|
333
|
+
const totalLinks = [...out.values()].reduce((sum, items) => sum + (items?.length || 0), 0);
|
|
334
|
+
logger.info(
|
|
335
|
+
`MEWP external L3/L4 ingestion: done source='${sourceName || 'unknown'}' ` +
|
|
336
|
+
`rows=${rows.length} parsed=${parsedRows} baseKeys=${out.size} links=${totalLinks} ` +
|
|
337
|
+
`acceptedL3=${acceptedL3} acceptedL4=${acceptedL4} ` +
|
|
338
|
+
`skippedMissingRequirement=${skippedMissingRequirement} ` +
|
|
339
|
+
`filteredByState=${filteredByState} filteredBySapWbs=${filteredBySapWbs}`
|
|
340
|
+
);
|
|
262
341
|
|
|
263
342
|
return out;
|
|
264
343
|
}
|