Skip to content

Commit

Permalink
Fix: Do not pad lines of code coverage report
Browse files Browse the repository at this point in the history
  • Loading branch information
localheinz committed Mar 9, 2024
1 parent 842f726 commit fb2c09c
Show file tree
Hide file tree
Showing 9 changed files with 41 additions and 48 deletions.
33 changes: 13 additions & 20 deletions src/Report/Text.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,9 @@
namespace SebastianBergmann\CodeCoverage\Report;

use const PHP_EOL;
use function array_map;
use function date;
use function ksort;
use function max;
use function sprintf;
use function str_pad;
use function strlen;
use SebastianBergmann\CodeCoverage\CodeCoverage;
use SebastianBergmann\CodeCoverage\Node\File;
use SebastianBergmann\CodeCoverage\Util\Percentage;
Expand Down Expand Up @@ -160,31 +156,28 @@ public function process(CodeCoverage $coverage, bool $showColors = false): strin
$report->numberOfExecutableLines(),
);

$padding = max(array_map('strlen', [$classes, $methods, $lines]));

if ($this->showOnlySummary) {
$title = 'Code Coverage Report Summary:';
$padding = max($padding, strlen($title));
$title = 'Code Coverage Report Summary:';

$output .= $this->format($colors['header'], $padding, $title);
$output .= $this->format($colors['header'], $title);
} else {
$date = date(' Y-m-d H:i:s');
$title = 'Code Coverage Report:';

$output .= $this->format($colors['header'], $padding, $title);
$output .= $this->format($colors['header'], $padding, $date);
$output .= $this->format($colors['header'], $padding, '');
$output .= $this->format($colors['header'], $padding, ' Summary:');
$output .= $this->format($colors['header'], $title);
$output .= $this->format($colors['header'], $date);
$output .= $this->format($colors['header'], '');
$output .= $this->format($colors['header'], ' Summary:');
}

$output .= $this->format($colors['classes'], $padding, $classes);
$output .= $this->format($colors['methods'], $padding, $methods);
$output .= $this->format($colors['classes'], $classes);
$output .= $this->format($colors['methods'], $methods);

if ($hasBranchCoverage) {
$output .= $this->format($colors['paths'], $padding, $paths);
$output .= $this->format($colors['branches'], $padding, $branches);
$output .= $this->format($colors['paths'], $paths);
$output .= $this->format($colors['branches'], $branches);
}
$output .= $this->format($colors['lines'], $padding, $lines);
$output .= $this->format($colors['lines'], $lines);

if ($this->showOnlySummary) {
return $output . PHP_EOL;
Expand Down Expand Up @@ -304,10 +297,10 @@ private function printCoverageCounts(int $numberOfCoveredElements, int $totalNum
sprintf($format, $totalNumberOfElements) . ')';
}

private function format(string $color, int $padding, false|string $string): string
private function format(string $color, false|string $string): string
{
$reset = $color ? self::COLOR_RESET : '';

return $color . str_pad((string) $string, $padding) . $reset . PHP_EOL;
return $color . (string) $string . $reset . PHP_EOL;
}
}
6 changes: 3 additions & 3 deletions tests/_files/BankAccount-text-line.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@


Code Coverage Report:
Code Coverage Report:
%s
Summary:

Summary:
Classes: 0.00% (0/1)
Methods: 75.00% (3/4)
Lines: 62.50% (5/8)
Expand Down
6 changes: 3 additions & 3 deletions tests/_files/BankAccount-text-path.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@


Code Coverage Report:
Code Coverage Report:
%s
Summary:

Summary:
Classes: 0.00% (0/1)
Methods: 75.00% (3/4)
Paths: 60.00% (3/5)
Expand Down
6 changes: 3 additions & 3 deletions tests/_files/BankAccount-text-summary.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@


Code Coverage Report Summary:
Classes: 0.00% (0/1)
Methods: 75.00% (3/4)
Lines: 62.50% (5/8)
Classes: 0.00% (0/1)
Methods: 75.00% (3/4)
Lines: 62.50% (5/8)

10 changes: 5 additions & 5 deletions tests/_files/BankAccountWithUncovered-text-line.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@


Code Coverage Report:
Code Coverage Report:
%s
Summary:
Classes: 0.00% (0/2)
Methods: 37.50% (3/8)

Summary:
Classes: 0.00% (0/2)
Methods: 37.50% (3/8)
Lines: 31.25% (5/16)

BankAccount
Expand Down
6 changes: 3 additions & 3 deletions tests/_files/BankAccountWithoutUncovered-text-line.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@


Code Coverage Report:
Code Coverage Report:
%s
Summary:

Summary:
Classes: 0.00% (0/1)
Methods: 75.00% (3/4)
Lines: 62.50% (5/8)
Expand Down
6 changes: 3 additions & 3 deletions tests/_files/NamespacedBankAccount-text.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@


Code Coverage Report:
Code Coverage Report:
%s
Summary:

Summary:
Classes: 0.00% (0/1)
Methods: 75.00% (3/4)
Lines: 62.50% (5/8)
Expand Down
6 changes: 3 additions & 3 deletions tests/_files/class-with-anonymous-function-text.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@


Code Coverage Report:
Code Coverage Report:
%s
Summary:

Summary:
Classes: 100.00% (1/1)
Methods: 100.00% (1/1)
Lines: 100.00% (8/8)
Expand Down
10 changes: 5 additions & 5 deletions tests/_files/ignored-lines-text.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@


Code Coverage Report:%w
Code Coverage Report:
%s
%w
Summary:%w
Classes: (0/0)
Methods: (0/0)

Summary:
Classes: (0/0)
Methods: (0/0)
Lines: 100.00% (1/1)

0 comments on commit fb2c09c

Please sign in to comment.