diff --git a/src/Report/Html/Renderer/Dashboard.php b/src/Report/Html/Renderer/Dashboard.php index 8a122a0a2..305c7fa10 100644 --- a/src/Report/Html/Renderer/Dashboard.php +++ b/src/Report/Html/Renderer/Dashboard.php @@ -10,7 +10,6 @@ namespace SebastianBergmann\CodeCoverage\Report\Html; use function array_values; -use function arsort; use function asort; use function assert; use function count; @@ -19,6 +18,8 @@ use function json_encode; use function sprintf; use function str_replace; +use function uasort; +use function usort; use SebastianBergmann\CodeCoverage\FileCouldNotBeWrittenException; use SebastianBergmann\CodeCoverage\Node\AbstractNode; use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; @@ -105,6 +106,7 @@ private function complexity(array $classes, string $baseLink): array $method['ccn'], str_replace($baseLink, '', $method['link']), $methodName, + $method['crap'], ]; } @@ -113,9 +115,13 @@ private function complexity(array $classes, string $baseLink): array $class['ccn'], str_replace($baseLink, '', $class['link']), $className, + $class['crap'], ]; } + usort($result['class'], static fn (mixed $a, mixed $b) => ($a[0] <=> $b[0])); + usort($result['method'], static fn (mixed $a, mixed $b) => ($a[0] <=> $b[0])); + $class = json_encode($result['class']); assert($class !== false); @@ -276,37 +282,47 @@ private function projectRisks(array $classes, string $baseLink): array $key = $className . '::' . $methodName; } - $methodRisks[$key] = $method['crap']; + $methodRisks[$key] = $method; } } if ($class['coverage'] < $this->thresholds->highLowerBound() && $class['ccn'] > count($class['methods'])) { - $classRisks[$className] = $class['crap']; + $classRisks[$className] = $class; } } - arsort($classRisks); - arsort($methodRisks); + uasort($classRisks, static function (array $a, array $b) + { + return ((int) ($a['crap']) <=> (int) ($b['crap'])) * -1; + }); + uasort($methodRisks, static function (array $a, array $b) + { + return ((int) ($a['crap']) <=> (int) ($b['crap'])) * -1; + }); - foreach ($classRisks as $className => $crap) { + foreach ($classRisks as $className => $class) { $result['class'] .= sprintf( - '
${targetName} | |
---|---|
Coverage | ${coverage}% |
Complexity | ${complexity} |
Crap | ${crap} |