mirror of
https://github.com/coollabsio/coolify.git
synced 2026-06-14 03:19:51 +00:00
feat(server): auto-fetch server metadata after validation
Server metadata is now automatically gathered when server validation completes successfully, both in the async job and Livewire component. This ensures server details (OS, CPU count, etc.) are populated immediately after validation passes, improving the user experience without requiring manual metadata fetching. Tests added to verify gatherServerMetadata is called on successful validation and skipped when validation fails.
This commit is contained in:
@@ -179,6 +179,9 @@ class ValidateAndInstallServerJob implements ShouldBeEncrypted, ShouldQueue
|
||||
// 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();
|
||||
|
||||
|
||||
@@ -198,6 +198,9 @@ class ValidateAndInstall extends Component
|
||||
// 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);
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
<?php
|
||||
|
||||
use App\Livewire\Server\ValidateAndInstall;
|
||||
use App\Models\Server;
|
||||
use App\Models\Team;
|
||||
use App\Models\User;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Livewire\Livewire;
|
||||
|
||||
uses(RefreshDatabase::class);
|
||||
|
||||
@@ -94,3 +96,24 @@ it('can overwrite server_metadata with new values', function () {
|
||||
expect($this->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');
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user