diff --git a/app/Console/Commands/PerformUpdate.php b/app/Console/Commands/PerformUpdate.php index d466417..59b7b95 100644 --- a/app/Console/Commands/PerformUpdate.php +++ b/app/Console/Commands/PerformUpdate.php @@ -35,12 +35,6 @@ public function handle(): int /** @var Site $site */ $site = Site::findOrFail($this->input->getArgument('siteId')); - if (!$site->update_requirement_state) { - $this->output->writeln('Update requirements not met, aborting!'); - - return Command::FAILURE; - } - UpdateSite::dispatchSync( $site, $targetVersion diff --git a/app/Console/Commands/QueueUpdates.php b/app/Console/Commands/QueueUpdates.php index 60360f2..57b433d 100644 --- a/app/Console/Commands/QueueUpdates.php +++ b/app/Console/Commands/QueueUpdates.php @@ -39,7 +39,6 @@ public function handle(): int $this->output->writeln('Pushing update jobs'); $sites = Site::query() - ->where('update_requirement_state', '=', true) ->where( 'cms_version', 'like', diff --git a/app/Jobs/UpdateSite.php b/app/Jobs/UpdateSite.php index 9b9b4a0..6c10ca8 100644 --- a/app/Jobs/UpdateSite.php +++ b/app/Jobs/UpdateSite.php @@ -51,12 +51,6 @@ public function handle(): void return; } - if (!$healthResult->update_requirement_state) { - Log::info("Site does not meet requirements, abort"); - - return; - } - // Do not make a major version update $majorVersionCms = (int) $healthResult->cms_version; $majorTargetVersion = (int) $this->targetVersion; @@ -67,6 +61,14 @@ public function handle(): void return; } + // Update is available, but let's check if the requirements are met + if (!$healthResult->update_requirement_state) { + throw new UpdateException( + 'verify', + "Site does not meet requirements" + ); + } + // Store pre-update response code $this->preUpdateCode = $this->site->getFrontendStatus(); diff --git a/tests/Unit/Jobs/UpdateSiteTest.php b/tests/Unit/Jobs/UpdateSiteTest.php index f4a1c51..d6352b1 100644 --- a/tests/Unit/Jobs/UpdateSiteTest.php +++ b/tests/Unit/Jobs/UpdateSiteTest.php @@ -61,23 +61,17 @@ public function testJobQuitsIfNoUpdateIsAvailable() public function testJobQuitsIfRequirementsArentMet() { + $this->expectExceptionMessage("Site does not meet requirements"); + $site = $this->getSiteMock( [ 'checkHealth' => $this->getHealthCheckMock(['update_requirement_state' => false]) ] ); - Log::spy(); - $object = new UpdateSite($site, "1.0.1"); $object->handle(); - Log::shouldHaveReceived('info') - ->once() - ->withArgs(function ($message) { - return str_contains($message, 'Site does not meet requirements, abort'); - }); - $this->assertTrue(true); }