@code-pushup/coverage-plugin 0.67.0 → 0.69.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-pushup/coverage-plugin",
3
- "version": "0.67.0",
3
+ "version": "0.69.0",
4
4
  "description": "Code PushUp plugin for tracking code coverage ☂",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/code-pushup/cli/tree/main/packages/plugin-coverage#readme",
@@ -34,8 +34,8 @@
34
34
  },
35
35
  "type": "module",
36
36
  "dependencies": {
37
- "@code-pushup/models": "0.67.0",
38
- "@code-pushup/utils": "0.67.0",
37
+ "@code-pushup/models": "0.69.0",
38
+ "@code-pushup/utils": "0.69.0",
39
39
  "ansis": "^3.3.0",
40
40
  "parse-lcov": "^1.0.4",
41
41
  "yargs": "^17.7.2",
@@ -1,5 +1,5 @@
1
1
  import path from 'node:path';
2
- import { exists, readTextFile, toUnixNewlines, ui } from '@code-pushup/utils';
2
+ import { exists, getGitRoot, objectFromEntries, objectToEntries, readTextFile, toUnixNewlines, ui, } from '@code-pushup/utils';
3
3
  import { mergeLcovResults } from './merge-lcov.js';
4
4
  import { parseLcov } from './parse-lcov.js';
5
5
  import { lcovCoverageToAuditOutput, recordToStatFunctionMapper, } from './transform.js';
@@ -17,14 +17,15 @@ export async function lcovResultsToAuditOutputs(results, coverageTypes) {
17
17
  // Merge multiple coverage reports for the same file
18
18
  const mergedResults = mergeLcovResults(lcovResults);
19
19
  // Calculate code coverage from all coverage results
20
- const totalCoverageStats = getTotalCoverageFromLcovRecords(mergedResults, coverageTypes);
20
+ const totalCoverageStats = groupLcovRecordsByCoverageType(mergedResults, coverageTypes);
21
+ const gitRoot = await getGitRoot();
21
22
  return coverageTypes
22
23
  .map(coverageType => {
23
24
  const stats = totalCoverageStats[coverageType];
24
25
  if (!stats) {
25
26
  return null;
26
27
  }
27
- return lcovCoverageToAuditOutput(stats, coverageType);
28
+ return lcovCoverageToAuditOutput(stats, coverageType, gitRoot);
28
29
  })
29
30
  .filter(exists);
30
31
  }
@@ -54,23 +55,13 @@ export async function parseLcovFiles(results) {
54
55
  return parsedResults;
55
56
  }
56
57
  /**
57
- *
58
- * @param records This function aggregates coverage stats from all coverage files
58
+ * This function aggregates coverage stats from all coverage files
59
+ * @param records LCOV record for each file
59
60
  * @param coverageTypes Types of coverage to be gathered
60
61
  * @returns Complete coverage stats for all defined types of coverage.
61
62
  */
62
- function getTotalCoverageFromLcovRecords(records, coverageTypes) {
63
- return records.reduce((acc, report) => Object.fromEntries([
64
- ...Object.entries(acc),
65
- ...Object.entries(getCoverageStatsFromLcovRecord(report, coverageTypes)).map(([type, stats]) => [
66
- type,
67
- {
68
- totalFound: (acc[type]?.totalFound ?? 0) + stats.totalFound,
69
- totalHit: (acc[type]?.totalHit ?? 0) + stats.totalHit,
70
- issues: [...(acc[type]?.issues ?? []), ...stats.issues],
71
- },
72
- ]),
73
- ]), {});
63
+ function groupLcovRecordsByCoverageType(records, coverageTypes) {
64
+ return records.reduce((acc, record) => objectFromEntries(objectToEntries(getCoverageStatsFromLcovRecord(record, coverageTypes)).map(([type, file]) => [type, [...(acc[type] ?? []), file]])), {});
74
65
  }
75
66
  /**
76
67
  * @param record record file data
@@ -78,7 +69,7 @@ function getTotalCoverageFromLcovRecords(records, coverageTypes) {
78
69
  * @returns Relevant coverage data from one lcov record file.
79
70
  */
80
71
  function getCoverageStatsFromLcovRecord(record, coverageTypes) {
81
- return Object.fromEntries(coverageTypes.map((coverageType) => [
72
+ return objectFromEntries(coverageTypes.map(coverageType => [
82
73
  coverageType,
83
74
  recordToStatFunctionMapper[coverageType](record),
84
75
  ]));
@@ -1 +1 @@
1
- {"version":3,"file":"lcov-runner.js","sourceRoot":"","sources":["../../../../../../../packages/plugin-coverage/src/lib/runner/lcov/lcov-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lcov-runner.js","sourceRoot":"","sources":["../../../../../../../packages/plugin-coverage/src/lib/runner/lcov/lcov-runner.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,16 @@
1
1
  import type { LCOVRecord } from 'parse-lcov';
2
2
  import type { AuditOutput } from '@code-pushup/models';
3
+ import { type FileCoverage } from '@code-pushup/utils';
3
4
  import type { CoverageType } from '../../config.js';
4
- import type { LCOVStat } from './types.js';
5
- export declare function lcovReportToFunctionStat(record: LCOVRecord): LCOVStat;
6
- export declare function lcovReportToLineStat(record: LCOVRecord): LCOVStat;
7
- export declare function lcovReportToBranchStat(record: LCOVRecord): LCOVStat;
8
- export declare const recordToStatFunctionMapper: {
9
- branch: typeof lcovReportToBranchStat;
10
- line: typeof lcovReportToLineStat;
11
- function: typeof lcovReportToFunctionStat;
12
- };
5
+ export declare function lcovReportToFunctionStat(record: LCOVRecord): FileCoverage;
6
+ export declare function lcovReportToLineStat(record: LCOVRecord): FileCoverage;
7
+ export declare function lcovReportToBranchStat(record: LCOVRecord): FileCoverage;
8
+ export declare const recordToStatFunctionMapper: Record<CoverageType, (record: LCOVRecord) => FileCoverage>;
13
9
  /**
14
10
  *
15
- * @param stat code coverage result for a given type
11
+ * @param files code coverage of given type for all files
16
12
  * @param coverageType code coverage type
13
+ * @param gitRoot root directory in repo, for relative paths
17
14
  * @returns Result of complete code ccoverage data coverted to AuditOutput
18
15
  */
19
- export declare function lcovCoverageToAuditOutput(stat: LCOVStat, coverageType: CoverageType): AuditOutput;
16
+ export declare function lcovCoverageToAuditOutput(files: FileCoverage[], coverageType: CoverageType, gitRoot: string): AuditOutput;
@@ -1,23 +1,19 @@
1
- import { toNumberPrecision, toOrdinal } from '@code-pushup/utils';
1
+ import { capitalize, filesCoverageToTree, toNumberPrecision, } from '@code-pushup/utils';
2
2
  import { INVALID_FUNCTION_NAME } from '../constants.js';
3
- import { calculateCoverage, mergeConsecutiveNumbers } from './utils.js';
3
+ import { mergeConsecutiveNumbers } from './utils.js';
4
4
  export function lcovReportToFunctionStat(record) {
5
5
  const validRecord = removeEmptyReport(record);
6
6
  return {
7
- totalFound: validRecord.functions.found,
8
- totalHit: validRecord.functions.hit,
9
- issues: validRecord.functions.hit < validRecord.functions.found
10
- ? validRecord.functions.details
11
- .filter(detail => !detail.hit)
12
- .map((detail) => ({
13
- message: `Function ${detail.name} is not called in any test case.`,
14
- severity: 'error',
15
- source: {
16
- file: validRecord.file,
17
- position: { startLine: detail.line },
18
- },
19
- }))
20
- : [],
7
+ path: validRecord.file,
8
+ covered: validRecord.functions.hit,
9
+ total: validRecord.functions.found,
10
+ missing: validRecord.functions.details
11
+ .filter(detail => !detail.hit)
12
+ .map(detail => ({
13
+ startLine: detail.line,
14
+ kind: 'function',
15
+ name: detail.name,
16
+ })),
21
17
  };
22
18
  }
23
19
  function removeEmptyReport(record) {
@@ -35,52 +31,32 @@ function removeEmptyReport(record) {
35
31
  };
36
32
  }
37
33
  export function lcovReportToLineStat(record) {
38
- const missingCoverage = record.lines.hit < record.lines.found;
39
- const lines = missingCoverage
40
- ? record.lines.details
41
- .filter(detail => !detail.hit)
42
- .map(detail => detail.line)
43
- : [];
44
- const linePositions = mergeConsecutiveNumbers(lines);
34
+ const lines = record.lines.details
35
+ .filter(detail => !detail.hit)
36
+ .map(detail => detail.line);
37
+ const lineRanges = mergeConsecutiveNumbers(lines);
45
38
  return {
46
- totalFound: record.lines.found,
47
- totalHit: record.lines.hit,
48
- issues: missingCoverage
49
- ? linePositions.map((linePosition) => {
50
- const lineReference = linePosition.end == null
51
- ? `Line ${linePosition.start} is`
52
- : `Lines ${linePosition.start}-${linePosition.end} are`;
53
- return {
54
- message: `${lineReference} not covered in any test case.`,
55
- severity: 'warning',
56
- source: {
57
- file: record.file,
58
- position: {
59
- startLine: linePosition.start,
60
- endLine: linePosition.end,
61
- },
62
- },
63
- };
64
- })
65
- : [],
39
+ path: record.file,
40
+ covered: record.lines.hit,
41
+ total: record.lines.found,
42
+ missing: lineRanges.map(({ start, end }) => ({
43
+ startLine: start,
44
+ endLine: end,
45
+ })),
66
46
  };
67
47
  }
68
48
  export function lcovReportToBranchStat(record) {
69
49
  return {
70
- totalFound: record.branches.found,
71
- totalHit: record.branches.hit,
72
- issues: record.branches.hit < record.branches.found
73
- ? record.branches.details
74
- .filter(detail => !detail.taken)
75
- .map((detail) => ({
76
- message: `${toOrdinal(detail.branch + 1)} branch is not taken in any test case.`,
77
- severity: 'error',
78
- source: {
79
- file: record.file,
80
- position: { startLine: detail.line },
81
- },
82
- }))
83
- : [],
50
+ path: record.file,
51
+ covered: record.branches.hit,
52
+ total: record.branches.found,
53
+ missing: record.branches.details
54
+ .filter(detail => !detail.taken)
55
+ .map(detail => ({
56
+ startLine: detail.line,
57
+ kind: 'branch',
58
+ name: detail.branch.toString(),
59
+ })),
84
60
  };
85
61
  }
86
62
  export const recordToStatFunctionMapper = {
@@ -90,12 +66,14 @@ export const recordToStatFunctionMapper = {
90
66
  };
91
67
  /**
92
68
  *
93
- * @param stat code coverage result for a given type
69
+ * @param files code coverage of given type for all files
94
70
  * @param coverageType code coverage type
71
+ * @param gitRoot root directory in repo, for relative paths
95
72
  * @returns Result of complete code ccoverage data coverted to AuditOutput
96
73
  */
97
- export function lcovCoverageToAuditOutput(stat, coverageType) {
98
- const coverage = calculateCoverage(stat.totalHit, stat.totalFound);
74
+ export function lcovCoverageToAuditOutput(files, coverageType, gitRoot) {
75
+ const tree = filesCoverageToTree(files, gitRoot, `${capitalize(coverageType)} coverage`);
76
+ const coverage = tree.root.values.coverage;
99
77
  const MAX_DECIMAL_PLACES = 4;
100
78
  const coveragePercentage = coverage * 100;
101
79
  return {
@@ -104,7 +82,7 @@ export function lcovCoverageToAuditOutput(stat, coverageType) {
104
82
  value: coveragePercentage,
105
83
  displayValue: `${toNumberPrecision(coveragePercentage, 1)} %`,
106
84
  details: {
107
- issues: stat.issues,
85
+ trees: [tree],
108
86
  },
109
87
  };
110
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../../../../../packages/plugin-coverage/src/lib/runner/lcov/transform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../../../../../packages/plugin-coverage/src/lib/runner/lcov/transform.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,3 @@
1
- import type { Issue } from '@code-pushup/models';
2
- import type { CoverageType } from '../../config.js';
3
- export type LCOVStat = {
4
- totalFound: number;
5
- totalHit: number;
6
- issues: Issue[];
7
- };
8
- export type LCOVStats = Partial<Record<CoverageType, LCOVStat>>;
9
1
  export type NumberRange = {
10
2
  start: number;
11
3
  end?: number;