Skip to content

Commit

Permalink
Merge pull request #82 from mcarvin8/updates
Browse files Browse the repository at this point in the history
Updates
  • Loading branch information
mcarvin8 authored Jan 10, 2025
2 parents be0097c + 9ffb7f5 commit c1a4b6c
Show file tree
Hide file tree
Showing 8 changed files with 37 additions and 37 deletions.
10 changes: 7 additions & 3 deletions src/commands/acc-transformer/transform.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,11 @@ export default class TransformerTransform extends SfCommand<TransformerTransform
summary: messages.getMessage('flags.coverage-json.summary'),
char: 'j',
required: true,
exists: true,
}),
'output-report': Flags.file({
summary: messages.getMessage('flags.output-report.summary'),
char: 'r',
required: true,
exists: false,
default: 'coverage.xml',
}),
format: Flags.string({
Expand All @@ -48,7 +46,13 @@ export default class TransformerTransform extends SfCommand<TransformerTransform
const jsonFilePath = resolve(flags['coverage-json']);
let outputReportPath = resolve(flags['output-report']);
const format = flags['format'];
const jsonData = await readFile(jsonFilePath, 'utf-8');
let jsonData: string;
try {
jsonData = await readFile(jsonFilePath, 'utf-8');
} catch (error) {
this.warn(`Failed to read ${jsonFilePath}. Confirm file exists.`)
return { path: jsonFilePath };
}

let xmlData: string;
let warnings: string[] = [];
Expand Down
9 changes: 7 additions & 2 deletions src/handlers/cloverCoverageHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,14 @@ export class CloverCoverageHandler implements CoverageHandler {
filePath: string,
fileName: string,
lines: Record<string, number>,
uncoveredLines: number[],
coveredLines: number[],
): void {
const uncoveredLines = Object.keys(lines)
.filter((lineNumber) => lines[lineNumber] === 0)
.map(Number);
const coveredLines = Object.keys(lines)
.filter((lineNumber) => lines[lineNumber] === 1)
.map(Number);

const fileObj: CloverFile = {
'@name': fileName,
'@path': filePath,
Expand Down
9 changes: 7 additions & 2 deletions src/handlers/coberturaCoverageHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,6 @@ export class CoberturaCoverageHandler implements CoverageHandler {
filePath: string,
fileName: string,
lines: Record<string, number>,
uncoveredLines: number[],
coveredLines: number[],
): void {
const classObj: CoberturaClass = {
'@name': fileName,
Expand All @@ -47,6 +45,13 @@ export class CoberturaCoverageHandler implements CoverageHandler {
lines: { line: [] },
};

const uncoveredLines = Object.keys(lines)
.filter((lineNumber) => lines[lineNumber] === 0)
.map(Number);
const coveredLines = Object.keys(lines)
.filter((lineNumber) => lines[lineNumber] === 1)
.map(Number);

const totalLines = uncoveredLines.length + coveredLines.length;
const coveredLineCount = coveredLines.length;

Expand Down
9 changes: 7 additions & 2 deletions src/handlers/lcovCoverageHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,14 @@ export class LcovCoverageHandler implements CoverageHandler {
filePath: string,
fileName: string,
lines: Record<string, number>,
uncoveredLines: number[],
coveredLines: number[],
): void {
const uncoveredLines = Object.keys(lines)
.filter((lineNumber) => lines[lineNumber] === 0)
.map(Number);
const coveredLines = Object.keys(lines)
.filter((lineNumber) => lines[lineNumber] === 1)
.map(Number);

const lcovFile: LcovFile = {
sourceFile: filePath,
lines: [],
Expand Down
9 changes: 6 additions & 3 deletions src/helpers/setCoveredLines.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import { join } from 'node:path';
import { getTotalLines } from './getTotalLines.js';

export async function renumberLines(
export async function setCoveredLines(
filePath: string,
repoRoot: string,
lines: Record<string, number>
Expand All @@ -12,11 +12,14 @@ export async function renumberLines(
const updatedLines: Record<string, number> = {};
const usedLines = new Set<number>();

for (const [line, status] of Object.entries(lines)) {
const sortedLines = Object.entries(lines).sort(([lineA], [lineB]) =>
parseInt(lineA, 10) - parseInt(lineB, 10)
);

for (const [line, status] of sortedLines) {
const lineNumber = parseInt(line, 10);

if (status === 1 && lineNumber > totalLines) {
// Find the first valid line number not already used
for (let randomLine = 1; randomLine <= totalLines; randomLine++) {
if (!usedLines.has(randomLine)) {
updatedLines[randomLine.toString()] = status;
Expand Down
16 changes: 3 additions & 13 deletions src/helpers/transformDeployCoverageReport.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { DeployCoverageData } from './types.js';
import { getPackageDirectories } from './getPackageDirectories.js';
import { findFilePath } from './findFilePath.js';
import { generateReport } from './generateReport.js';
import { renumberLines } from './setCoveredLines.js';
import { setCoveredLines } from './setCoveredLines.js';

export async function transformDeployCoverageReport(
data: DeployCoverageData,
Expand All @@ -29,23 +29,13 @@ export async function transformDeployCoverageReport(
continue;
}

const uncoveredLines = Object.keys(fileInfo.s)
.filter((lineNumber) => fileInfo.s[lineNumber] === 0)
.map(Number);
const coveredLines = Object.keys(fileInfo.s)
.filter((lineNumber) => fileInfo.s[lineNumber] === 1)
.map(Number);

const updatedLines = await renumberLines(relativeFilePath, repoRoot, fileInfo.s);
fileInfo.s = updatedLines; // Safe reassignment outside the function

const updatedLines = await setCoveredLines(relativeFilePath, repoRoot, fileInfo.s);
fileInfo.s = updatedLines;

handler.processFile(
relativeFilePath,
formattedFileName,
fileInfo.s,
uncoveredLines,
coveredLines,
);
filesProcessed++;
}
Expand Down
10 changes: 0 additions & 10 deletions src/helpers/transformTestCoverageReport.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,21 +35,11 @@ export async function transformTestCoverageReport(
continue;
}

const uncoveredLines = Object.entries(lines)
.filter(([, isCovered]) => isCovered === 0)
.map(([lineNumber]) => Number(lineNumber));
const coveredLines = Object.entries(lines)
.filter(([, isCovered]) => isCovered === 1)
.map(([lineNumber]) => Number(lineNumber));

handler.processFile(
relativeFilePath,
formattedFileName,
lines,
uncoveredLines,
coveredLines,
);

filesProcessed++;
}

Expand Down
2 changes: 0 additions & 2 deletions src/helpers/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -162,8 +162,6 @@ export type CoverageHandler = {
filePath: string,
fileName: string,
lines: Record<string, number>,
uncoveredLines: number[],
coveredLines: number[],
): void;
finalize(): SonarCoverageObject | CoberturaCoverageObject | CloverCoverageObject | LcovCoverageObject;
};
Expand Down

0 comments on commit c1a4b6c

Please sign in to comment.