api-tests-coverage 1.0.25 → 1.0.26

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.
Files changed (59) hide show
  1. package/dist/dashboard/dist/assets/_basePickBy-DIphIltc.js +1 -0
  2. package/dist/dashboard/dist/assets/_baseUniq-D57u2_9m.js +1 -0
  3. package/dist/dashboard/dist/assets/arc-DQosMxPM.js +1 -0
  4. package/dist/dashboard/dist/assets/architectureDiagram-VXUJARFQ-CNbtIqHR.js +36 -0
  5. package/dist/dashboard/dist/assets/blockDiagram-VD42YOAC-NgdJaQvK.js +122 -0
  6. package/dist/dashboard/dist/assets/c4Diagram-YG6GDRKO-ChTe70Dn.js +10 -0
  7. package/dist/dashboard/dist/assets/channel-B3Mj1BTw.js +1 -0
  8. package/dist/dashboard/dist/assets/chunk-4BX2VUAB-BS3-4dfL.js +1 -0
  9. package/dist/dashboard/dist/assets/chunk-55IACEB6-BCczdImM.js +1 -0
  10. package/dist/dashboard/dist/assets/chunk-B4BG7PRW-D6Mi4ccz.js +165 -0
  11. package/dist/dashboard/dist/assets/chunk-DI55MBZ5-B0tOisd5.js +220 -0
  12. package/dist/dashboard/dist/assets/chunk-FMBD7UC4-RSShKwSG.js +15 -0
  13. package/dist/dashboard/dist/assets/chunk-QN33PNHL-DFyjAoyD.js +1 -0
  14. package/dist/dashboard/dist/assets/chunk-QZHKN3VN-ARq4habW.js +1 -0
  15. package/dist/dashboard/dist/assets/chunk-TZMSLE5B-DrmzpdLp.js +1 -0
  16. package/dist/dashboard/dist/assets/classDiagram-2ON5EDUG-cvlgQ4cC.js +1 -0
  17. package/dist/dashboard/dist/assets/classDiagram-v2-WZHVMYZB-cvlgQ4cC.js +1 -0
  18. package/dist/dashboard/dist/assets/clone-DRiM0_7k.js +1 -0
  19. package/dist/dashboard/dist/assets/cose-bilkent-S5V4N54A-_dXvVagP.js +1 -0
  20. package/dist/dashboard/dist/assets/dagre-6UL2VRFP-BfhkcdcZ.js +4 -0
  21. package/dist/dashboard/dist/assets/diagram-PSM6KHXK-C8bgfsC2.js +24 -0
  22. package/dist/dashboard/dist/assets/diagram-QEK2KX5R-SPnyk4NX.js +43 -0
  23. package/dist/dashboard/dist/assets/diagram-S2PKOQOG-Cv8CAseP.js +24 -0
  24. package/dist/dashboard/dist/assets/erDiagram-Q2GNP2WA-DHMIYnca.js +60 -0
  25. package/dist/dashboard/dist/assets/flowDiagram-NV44I4VS-B-9A_TD6.js +162 -0
  26. package/dist/dashboard/dist/assets/ganttDiagram-JELNMOA3-DDmcIEO0.js +267 -0
  27. package/dist/dashboard/dist/assets/gitGraphDiagram-V2S2FVAM-D4YFQ0Qf.js +65 -0
  28. package/dist/dashboard/dist/assets/graph-DI2MOSai.js +1 -0
  29. package/dist/dashboard/dist/assets/index-BQfUzgMV.js +778 -0
  30. package/dist/dashboard/dist/assets/index-Bpho1Ov5.css +1 -0
  31. package/dist/dashboard/dist/assets/infoDiagram-HS3SLOUP-BULYGXV8.js +2 -0
  32. package/dist/dashboard/dist/assets/journeyDiagram-XKPGCS4Q-CpGd67rs.js +139 -0
  33. package/dist/dashboard/dist/assets/kanban-definition-3W4ZIXB7-CXjvcKGc.js +89 -0
  34. package/dist/dashboard/dist/assets/layout-D5qgY_UX.js +1 -0
  35. package/dist/dashboard/dist/assets/mindmap-definition-VGOIOE7T-CKZrc1IF.js +68 -0
  36. package/dist/dashboard/dist/assets/pieDiagram-ADFJNKIX-uIOJq-u0.js +30 -0
  37. package/dist/dashboard/dist/assets/quadrantDiagram-AYHSOK5B-D5g_wTRC.js +7 -0
  38. package/dist/dashboard/dist/assets/requirementDiagram-UZGBJVZJ-BLpGY-Om.js +64 -0
  39. package/dist/dashboard/dist/assets/sankeyDiagram-TZEHDZUN-E0klRQfk.js +10 -0
  40. package/dist/dashboard/dist/assets/sequenceDiagram-WL72ISMW-Byy1IdkL.js +145 -0
  41. package/dist/dashboard/dist/assets/stateDiagram-FKZM4ZOC-x3lHxmNY.js +1 -0
  42. package/dist/dashboard/dist/assets/stateDiagram-v2-4FDKWEC3-D0gUM6SR.js +1 -0
  43. package/dist/dashboard/dist/assets/timeline-definition-IT6M3QCI-D490JqJU.js +61 -0
  44. package/dist/dashboard/dist/assets/treemap-GDKQZRPO-C5Nk6dQh.js +162 -0
  45. package/dist/dashboard/dist/assets/xychartDiagram-PRI3JC2R-CYsIKi3H.js +7 -0
  46. package/dist/dashboard/dist/index.html +2 -2
  47. package/dist/src/analyzeHelpers.d.ts +60 -0
  48. package/dist/src/analyzeHelpers.d.ts.map +1 -0
  49. package/dist/src/analyzeHelpers.js +670 -0
  50. package/dist/src/config/defaultConfig.js +1 -1
  51. package/dist/src/index.js +553 -615
  52. package/dist/src/reporting.d.ts +10 -0
  53. package/dist/src/reporting.d.ts.map +1 -1
  54. package/dist/src/reporting.js +3 -0
  55. package/dist/src/summary/evaluateMetrics.js +3 -2
  56. package/dist/src/unitAnalysis.d.ts +132 -1
  57. package/dist/src/unitAnalysis.d.ts.map +1 -1
  58. package/dist/src/unitAnalysis.js +1139 -185
  59. package/package.json +1 -1
@@ -13,6 +13,16 @@ export interface CoverageResult {
13
13
  coveredItems: number;
14
14
  /** Coverage percentage (0‑100, two decimal places) */
15
15
  coveragePercent: number;
16
+ /** Optional computed status for dashboards and summary tables */
17
+ status?: 'PASS' | 'FAIL' | 'SKIPPED' | 'N/A';
18
+ /** Human-readable reason, required for N/A results */
19
+ reason?: string;
20
+ /** Scan metadata captured during analysis */
21
+ scanMeta?: {
22
+ filesScanned: number;
23
+ scanDurationMs: number;
24
+ detectionMethod: string;
25
+ };
16
26
  /** Arbitrary per-type detail data serialisable to JSON */
17
27
  details: unknown;
18
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reporting.d.ts","sourceRoot":"","sources":["../../src/reporting.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAIzD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,+GAA+G;IAC/G,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,eAAe,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,OAAO,EAAE,OAAO,CAAC;CAClB;AAID,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;AAE7D;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,EAAE,CAMxD;AAwND;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,cAAc,EAAE,EACzB,OAAO,EAAE,YAAY,EAAE,EACvB,UAAU,EAAE,MAAM,EAClB,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACvC,aAAa,CAAC,EAAE,iBAAiB,GAChC,IAAI,CAqBN;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,cAAc,EAAE,EACzB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,MAAM,EAAE,CAaV"}
1
+ {"version":3,"file":"reporting.d.ts","sourceRoot":"","sources":["../../src/reporting.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAIzD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,+GAA+G;IAC/G,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,eAAe,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC;IAC7C,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE;QACT,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,0DAA0D;IAC1D,OAAO,EAAE,OAAO,CAAC;CAClB;AAID,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;AAE7D;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,EAAE,CAMxD;AA2ND;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,cAAc,EAAE,EACzB,OAAO,EAAE,YAAY,EAAE,EACvB,UAAU,EAAE,MAAM,EAClB,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACvC,aAAa,CAAC,EAAE,iBAAiB,GAChC,IAAI,CAqBN;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,cAAc,EAAE,EACzB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,MAAM,EAAE,CAaV"}
@@ -82,6 +82,9 @@ function writeJson(results, reportsDir, observability) {
82
82
  totalItems: r.totalItems,
83
83
  coveredItems: r.coveredItems,
84
84
  coveragePercent: r.coveragePercent,
85
+ status: r.status,
86
+ reason: r.reason,
87
+ scanMeta: r.scanMeta,
85
88
  })),
86
89
  ];
87
90
  const mergedDetails = {
@@ -69,6 +69,7 @@ function buildMetric(type, resultByType, thresholds, qualityGate) {
69
69
  gateEvaluated,
70
70
  qualityGate,
71
71
  type,
72
+ customReason: result === null || result === void 0 ? void 0 : result.reason,
72
73
  });
73
74
  const topGaps = result && applicable
74
75
  ? (0, markdownRenderer_1.extractGaps)(result, 5)
@@ -89,12 +90,12 @@ function buildMetric(type, resultByType, thresholds, qualityGate) {
89
90
  }
90
91
  function computeStatus(opts) {
91
92
  var _a;
92
- const { executed, applicable, totalItems, coveragePercent, threshold, gateEvaluated, qualityGate, type } = opts;
93
+ const { executed, applicable, totalItems, coveragePercent, threshold, gateEvaluated, qualityGate, type, customReason } = opts;
93
94
  if (!executed) {
94
95
  return { status: 'SKIPPED', reason: 'Analyzer did not run for this type' };
95
96
  }
96
97
  if (totalItems === 0) {
97
- return { status: 'N/A', reason: 'No items found to measure' };
98
+ return { status: 'N/A', reason: customReason !== null && customReason !== void 0 ? customReason : 'No items found to measure' };
98
99
  }
99
100
  if (!gateEvaluated) {
100
101
  return { status: 'N/A', reason: 'No threshold configured — gate not evaluated' };
@@ -19,6 +19,16 @@ export interface UnitCoverageSummary {
19
19
  branchCoverage: number | null;
20
20
  methodCoverage: number | null;
21
21
  classCoverage: number | null;
22
+ uncoveredFiles: string[];
23
+ lowCoverageFiles: Array<{
24
+ file: string;
25
+ lineCoverage: number;
26
+ }>;
27
+ fileCoverage: Array<{
28
+ file: string;
29
+ lineCoverage: number;
30
+ }>;
31
+ uncoveredClasses: string[];
22
32
  uncoveredMethods: Array<{
23
33
  class: string;
24
34
  method: string;
@@ -45,6 +55,12 @@ export interface UnitMutationSummary {
45
55
  totalMutants: number;
46
56
  killedMutants: number;
47
57
  survivedMutants: number;
58
+ worstMutationFiles: Array<{
59
+ file: string;
60
+ survived: number;
61
+ killed: number;
62
+ }>;
63
+ weakestFiles: string[];
48
64
  survivedByFile: Array<{
49
65
  file: string;
50
66
  survived: UnitMutationSurvivor[];
@@ -75,6 +91,57 @@ export interface SlowTestSummary {
75
91
  slowPercent: number;
76
92
  reportPaths: string[];
77
93
  }
94
+ export interface UnitDynamicFailure {
95
+ file: string;
96
+ method: string;
97
+ message: string;
98
+ stackTrace?: string;
99
+ }
100
+ export interface UnitDynamicSummary extends SlowTestSummary {
101
+ passed: number;
102
+ failed: number;
103
+ skipped: number;
104
+ flakyTests: string[];
105
+ failures: UnitDynamicFailure[];
106
+ }
107
+ export interface UnitContractSummary {
108
+ totalContracts: number;
109
+ verifiedContracts: number;
110
+ failedVerifications: string[];
111
+ contractPaths: string[];
112
+ }
113
+ export interface UnitAstSummary {
114
+ filesScanned: number;
115
+ testCount: number;
116
+ parameterizedTestCount: number;
117
+ testClassCount: number;
118
+ mockCount: number;
119
+ stubCount: number;
120
+ spyCount: number;
121
+ isolationPercent: number;
122
+ assertionCount: number;
123
+ assertionsPerTest: number;
124
+ testsWithZeroAssertions: string[];
125
+ testsWithTooManyAssertions: string[];
126
+ descriptiveNamePercent: number;
127
+ genericNameExamples: string[];
128
+ qualityScore: number;
129
+ dimensionScores: {
130
+ assertionCompleteness: number;
131
+ testIsolation: number;
132
+ namingQuality: number;
133
+ disabledTests: number;
134
+ criticalSmells: number;
135
+ };
136
+ smells: UnitTestSmell[];
137
+ disabledTests: string[];
138
+ emptyTestBodies: string[];
139
+ threadSleepUsage: string[];
140
+ systemOutUsage: string[];
141
+ hardcodedCredentials: string[];
142
+ staticMutableStateModified: boolean;
143
+ sharedMutableFields: string[];
144
+ }
78
145
  export interface IndependenceSummary {
79
146
  score: number;
80
147
  deductions: Array<{
@@ -96,9 +163,38 @@ export interface AssertionDensitySummary {
96
163
  }
97
164
  export interface UnitAnalysisDetails {
98
165
  items: UnitCoverageItem[];
166
+ layersApplied: Array<'ast' | 'dynamic' | 'coverage' | 'mutation' | 'contract'>;
167
+ ast: UnitAstSummary;
168
+ dynamic: UnitDynamicSummary | null;
169
+ coverage: UnitCoverageSummary | null;
170
+ mutation: UnitMutationSummary | null;
171
+ contract: UnitContractSummary | null;
99
172
  codeCoverage: UnitCoverageSummary | null;
100
173
  codeCoverageMissing?: UnitCoverageMissingInfo;
101
174
  mutationTesting: UnitMutationSummary | null;
175
+ filesScanned: number;
176
+ smells: UnitTestSmell[];
177
+ enrichedByRuntime: boolean;
178
+ enrichedByMutation: boolean;
179
+ lineCoverage?: number | null;
180
+ branchCoverage?: number | null;
181
+ classCoverage?: number | null;
182
+ methodCoverage?: number | null;
183
+ uncoveredFiles?: string[];
184
+ lowCoverageFiles?: Array<{
185
+ file: string;
186
+ lineCoverage: number;
187
+ }>;
188
+ runtimeReportPath?: string;
189
+ mutationScore?: number | null;
190
+ mutationSurvivedCount?: number;
191
+ mutationKilledCount?: number;
192
+ worstMutationFiles?: Array<{
193
+ file: string;
194
+ survived: number;
195
+ killed: number;
196
+ }>;
197
+ mutationReportPath?: string;
102
198
  testSmells: {
103
199
  bySeverity: Record<UnitTestSmellSeverity, number>;
104
200
  items: UnitTestSmell[];
@@ -107,25 +203,50 @@ export interface UnitAnalysisDetails {
107
203
  independence: IndependenceSummary | null;
108
204
  assertionDensity: AssertionDensitySummary;
109
205
  messages: string[];
206
+ weightedScore?: number;
207
+ scoreWeighting?: string;
208
+ qualityPassingTests?: number;
110
209
  }
111
210
  export interface UnitAnalysisExecution {
112
211
  result: CoverageResult;
113
212
  failures: string[];
114
213
  warnings: string[];
214
+ consoleLines: string[];
115
215
  }
116
216
  interface TestFileAnalysis {
117
217
  filePath: string;
118
218
  relativePath: string;
119
- language: 'java' | 'kotlin' | 'javascript' | 'typescript' | 'python' | 'other';
219
+ language: 'java' | 'kotlin' | 'javascript' | 'typescript' | 'python' | 'ruby' | 'go' | 'other';
120
220
  content: string;
221
+ testBlocks: TestBlock[];
222
+ testCount: number;
121
223
  qualityScore: number;
122
224
  parameterizedExpansions: number;
123
225
  assertionCount: number;
226
+ testClassCount: number;
227
+ mockCount: number;
228
+ stubCount: number;
229
+ spyCount: number;
230
+ testsUsingIsolation: number;
231
+ descriptiveTestNameCount: number;
232
+ genericNameExamples: string[];
233
+ emptyTestBodies: string[];
234
+ threadSleepUsage: string[];
235
+ systemOutUsage: string[];
236
+ hardcodedCredentials: string[];
237
+ staticMutableStateModified: boolean;
238
+ sharedMutableFields: string[];
124
239
  mockLibrary?: string;
125
240
  layer: string;
126
241
  coveredMethods: string[];
127
242
  instantiatedClasses: string[];
128
243
  }
244
+ interface TestBlock {
245
+ name: string;
246
+ body: string;
247
+ line: number;
248
+ decorators: string[];
249
+ }
129
250
  export declare function analyzeUnitTests(options: {
130
251
  rootDir: string;
131
252
  testFiles: string[];
@@ -140,6 +261,16 @@ export declare function parseCoverageXml(reportPath: string): UnitCoverageSummar
140
261
  export declare function parseGoCoverage(reportPath: string): UnitCoverageSummary;
141
262
  export declare function parseStrykerReport(reportPath: string, toolName: string): UnitMutationSummary;
142
263
  export declare function parseSlowTests(rootDir: string, config: UnitAnalysisConfig): SlowTestSummary | null;
264
+ export declare function calculateDynamicPassRate(summary: UnitDynamicSummary): number;
265
+ export declare function calculateUnitScore(input: {
266
+ astQuality: number;
267
+ dynamicPassRate: number | null;
268
+ lineCoverage: number | null;
269
+ branchCoverage?: number | null;
270
+ mutationScore: number | null;
271
+ layersApplied: UnitAnalysisDetails['layersApplied'];
272
+ }): number;
143
273
  export declare function detectTestSmells(rootDir: string, tests: TestFileAnalysis[]): UnitTestSmell[];
274
+ export declare function calculateWeightedCoveredItems(totalItems: number, weightedScore: number): number;
144
275
  export {};
145
276
  //# sourceMappingURL=unitAnalysis.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"unitAnalysis.d.ts","sourceRoot":"","sources":["../../src/unitAnalysis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unitAnalysis.d.ts","sourceRoot":"","sources":["../../src/unitAnalysis.ts"],"names":[],"mappings":"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"}