diff --git a/src/Checks/Checks/DatabaseSizeCheck.php b/src/Checks/Checks/DatabaseSizeCheck.php index d144efcc..7f0fb0b1 100644 --- a/src/Checks/Checks/DatabaseSizeCheck.php +++ b/src/Checks/Checks/DatabaseSizeCheck.php @@ -29,13 +29,17 @@ public function failWhenSizeAboveGb(float $errorThresholdGb): self public function run(): Result { - $result = Result::make(); - $databaseSizeInGb = $this->getDatabaseSizeInGb(); + $result = Result::make() + ->meta([ + 'database_size' => $databaseSizeInGb, + ]) + ->shortSummary("{$databaseSizeInGb} GB"); + return $databaseSizeInGb >= $this->failWhenSizeAboveGb ? $result->failed("Database size is {$databaseSizeInGb} GB, which is above the threshold of {$this->failWhenSizeAboveGb} GB") - : $result->ok("{$databaseSizeInGb} GB"); + : $result->ok(); } protected function getDefaultConnectionName(): string diff --git a/tests/Checks/DatabaseSizeCheckTest.php b/tests/Checks/DatabaseSizeCheckTest.php index dac63f57..90e990a6 100644 --- a/tests/Checks/DatabaseSizeCheckTest.php +++ b/tests/Checks/DatabaseSizeCheckTest.php @@ -1,7 +1,12 @@ status)->toBe(Status::failed()); }); + +it('should not send a notification on a successful check', function () { + registerPassingDatabaseSizeCheck(); + + artisan(RunHealthChecksCommand::class)->assertSuccessful(); + + Notification::assertNothingSent(); +}); + +function registerPassingDatabaseSizeCheck() +{ + Health::checks([ + FakeDatabaseSizeCheck::new() + ->fakeDatabaseSizeInGb(0.5), + ]); +} diff --git a/tests/TestClasses/FakeDatabaseSizeCheck.php b/tests/TestClasses/FakeDatabaseSizeCheck.php new file mode 100644 index 00000000..f7830159 --- /dev/null +++ b/tests/TestClasses/FakeDatabaseSizeCheck.php @@ -0,0 +1,23 @@ +fakeDatabaseSizeInGb = $fakeDatabaseSizeInGb; + + return $this; + } + + public function getDatabaseSizeInGb(): float + { + return $this->fakeDatabaseSizeInGb; + } +}