From 21f2b318152bc64b995fd35b622589d1e119218f Mon Sep 17 00:00:00 2001 From: Fabien Villepinte Date: Sun, 31 Jan 2021 21:52:14 +0000 Subject: [PATCH] Give the ability to disable min score --- README.md | 1 + src/Configuration/Config.php | 12 ++++++++---- src/Configuration/Validator.php | 2 +- tests/Unit/Configuration/ConfigTest.php | 11 ++++++++++- tests/docker/fossil/churn.yml | 3 ++- 5 files changed, 22 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 1c34f121..a88a6ad6 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,7 @@ A sample `churn.yml` file looks like: filesToShow: 10 # The minimum score a file need to display in the results table. +# Disabled if null. # Default: 0.1 minScoreToShow: 0 diff --git a/src/Configuration/Config.php b/src/Configuration/Config.php index 7ee2eeee..8927b225 100644 --- a/src/Configuration/Config.php +++ b/src/Configuration/Config.php @@ -26,7 +26,7 @@ class Config */ private function __construct(array $configuration = []) { - if (!empty($configuration)) { + if ([] !== $configuration) { (new Validator())->validateConfigurationValues($configuration); } @@ -78,11 +78,15 @@ public function getFilesToShow(): int } /** - * Get the minimum score a file need to display. + * Get the minimum score a file need to display (ignored if null). */ - public function getMinScoreToShow(): float + public function getMinScoreToShow(): ?float { - return $this->configuration['minScoreToShow'] ?? self::MINIMUM_SCORE_TO_SHOW; + if (\array_key_exists('minScoreToShow', $this->configuration)) { + return $this->configuration['minScoreToShow']; + } + + return self::MINIMUM_SCORE_TO_SHOW; } /** diff --git a/src/Configuration/Validator.php b/src/Configuration/Validator.php index f8e92947..b41ddff0 100644 --- a/src/Configuration/Validator.php +++ b/src/Configuration/Validator.php @@ -53,7 +53,7 @@ private function validateFilesToShow(array $configuration): void */ private function validateMinScoreToShow(array $configuration): void { - if (!\array_key_exists('minScoreToShow', $configuration)) { + if (!\array_key_exists('minScoreToShow', $configuration) || null === $configuration['minScoreToShow']) { return; } diff --git a/tests/Unit/Configuration/ConfigTest.php b/tests/Unit/Configuration/ConfigTest.php index e52cec38..6a5fff1f 100644 --- a/tests/Unit/Configuration/ConfigTest.php +++ b/tests/Unit/Configuration/ConfigTest.php @@ -44,7 +44,6 @@ public function it_can_return_its_default_values_when_instantiated_without_any_p public function it_can_return_its_values_when_instantiated_parameters() { $filesToShow = 13; - $directoriesToScan = ['src', 'tests']; $minScoreToShow = 5; $parallelJobs = 7; @@ -73,4 +72,14 @@ public function it_can_return_its_values_when_instantiated_parameters() $this->assertSame($fileExtensions, $config->getFileExtensions()); $this->assertSame($vcs, $config->getVCS()); } + + /** @test */ + public function it_accepts_null_for_min_score_to_show() + { + $config = Config::create([ + 'minScoreToShow' => null, + ]); + + $this->assertNull($config->getMinScoreToShow()); + } } diff --git a/tests/docker/fossil/churn.yml b/tests/docker/fossil/churn.yml index 3e96137f..4ee3f32b 100644 --- a/tests/docker/fossil/churn.yml +++ b/tests/docker/fossil/churn.yml @@ -1,3 +1,4 @@ vcs: fossil directoriesToScan: - - /tmp/test \ No newline at end of file + - /tmp/test +minScoreToShow: ~ \ No newline at end of file