diff --git a/app/Jobs/ValidateAndInstallServerJob.php b/app/Jobs/ValidateAndInstallServerJob.php index 9f02f9b78..288904471 100644 --- a/app/Jobs/ValidateAndInstallServerJob.php +++ b/app/Jobs/ValidateAndInstallServerJob.php @@ -179,6 +179,9 @@ public function handle(): void // Mark validation as complete $this->server->update(['is_validating' => false]); + // Auto-fetch server details now that validation passed + $this->server->gatherServerMetadata(); + // Refresh server to get latest state $this->server->refresh(); diff --git a/app/Livewire/Server/ValidateAndInstall.php b/app/Livewire/Server/ValidateAndInstall.php index 1a5bd381b..198d823b9 100644 --- a/app/Livewire/Server/ValidateAndInstall.php +++ b/app/Livewire/Server/ValidateAndInstall.php @@ -198,6 +198,9 @@ public function validateDockerVersion() // Mark validation as complete $this->server->update(['is_validating' => false]); + // Auto-fetch server details now that validation passed + $this->server->gatherServerMetadata(); + $this->dispatch('refreshServerShow'); $this->dispatch('refreshBoardingIndex'); ServerValidated::dispatch($this->server->team_id, $this->server->uuid); diff --git a/tests/Feature/ServerMetadataTest.php b/tests/Feature/ServerMetadataTest.php index fcd515de9..204ae456d 100644 --- a/tests/Feature/ServerMetadataTest.php +++ b/tests/Feature/ServerMetadataTest.php @@ -1,9 +1,11 @@ server->server_metadata['os'])->toBe('Ubuntu 22.04') ->and($this->server->server_metadata['cpus'])->toBe(4); }); + +it('calls gatherServerMetadata during ValidateAndInstall when docker version is valid', function () { + $serverMock = Mockery::mock($this->server)->makePartial(); + $serverMock->shouldReceive('isSwarm')->andReturn(false); + $serverMock->shouldReceive('validateDockerEngineVersion')->once()->andReturn('24.0.0'); + $serverMock->shouldReceive('gatherServerMetadata')->once(); + $serverMock->shouldReceive('isBuildServer')->andReturn(false); + + Livewire::test(ValidateAndInstall::class, ['server' => $serverMock]) + ->call('validateDockerVersion'); +}); + +it('does not call gatherServerMetadata when docker version validation fails', function () { + $serverMock = Mockery::mock($this->server)->makePartial(); + $serverMock->shouldReceive('isSwarm')->andReturn(false); + $serverMock->shouldReceive('validateDockerEngineVersion')->once()->andReturn(false); + $serverMock->shouldNotReceive('gatherServerMetadata'); + + Livewire::test(ValidateAndInstall::class, ['server' => $serverMock]) + ->call('validateDockerVersion'); +});