diff --git a/src/Schedule/Event.php b/src/Schedule/Event.php index f12ac6d..7fb16cf 100644 --- a/src/Schedule/Event.php +++ b/src/Schedule/Event.php @@ -23,8 +23,10 @@ public function description() try { $reflection = new \ReflectionClass($this->className()); return (string) Arr::get($reflection->getDefaultProperties(), 'description', ''); + } catch (\InvalidArgumentException $exception) { + return $this->event->description; } catch (\ReflectionException $exception) { - return ''; + return $this->event->description; } } diff --git a/tests/Fakes/Kernel.php b/tests/Fakes/Kernel.php index 37029e0..d5cc9ce 100644 --- a/tests/Fakes/Kernel.php +++ b/tests/Fakes/Kernel.php @@ -42,14 +42,16 @@ protected function schedule(Schedule $schedule) if (Arr::has($job, 'job')) { $command = $schedule->job($job['job']); - } else { + } else if (Arr::has($job, 'command')) { $command = $schedule->command($job['command']); + } else if (Arr::has($job, 'exec')) { + $command = $schedule->exec($job['exec']); } $command->{$job['schedule']}(); - collect(Arr::get($job, 'additionalOptions', []))->each(function ($additionalOption) use ($command) { - $command->{$additionalOption}(); + collect(Arr::get($job, 'additionalOptions', []))->each(function ($parameter, $additionalOption) use ($command) { + $command->{$additionalOption}($parameter); }); }); } diff --git a/tests/ListJobsTest.php b/tests/ListJobsTest.php index d3f92ea..7c7f299 100644 --- a/tests/ListJobsTest.php +++ b/tests/ListJobsTest.php @@ -34,16 +34,23 @@ public function itReturnsAListOfScheduledJobs() 'command' => 'store-fake-metrics', 'schedule' => 'hourly', 'additionalOptions' => [ - 'withoutOverlapping', - 'onOneServer', - 'evenInMaintenanceMode' + 'withoutOverlapping' => null, + 'onOneServer' => null, + 'evenInMaintenanceMode' => null + ] + ], + [ + 'exec' => 'df', + 'schedule' => 'hourly', + 'additionalOptions' => [ + 'description' => 'Check disk usage', ] ], [ 'job' => UpdateOrders::class, 'schedule' => 'daily', 'additionalOptions' => [ - 'evenInMaintenanceMode' + 'evenInMaintenanceMode' => null ] ], ], @@ -67,7 +74,7 @@ public function itReturnsAListOfScheduledJobs() ], [ 'command' => 'store-fake-metrics', - 'description' => '', + 'description' => null, 'expression' => '0 * * * *', 'humanReadableExpression' => 'At the hour past every hour on every day.', 'nextRunAt' => Cron::nextRunAt('0 * * * *')->toIso8601String(), @@ -76,6 +83,17 @@ public function itReturnsAListOfScheduledJobs() 'onOneServer' => true, 'evenInMaintenanceMode' => true, ], + [ + 'command' => null, + 'description' => 'Check disk usage', + 'expression' => '0 * * * *', + 'humanReadableExpression' => 'At the hour past every hour on every day.', + 'nextRunAt' => Cron::nextRunAt('0 * * * *')->toIso8601String(), + 'timezone' => 'UTC', + 'withoutOverlapping' => false, + 'onOneServer' => false, + 'evenInMaintenanceMode' => false, + ], [ 'command' => UpdateOrders::class, 'description' => 'Fake job to update orders...',