feat(server): auto-fetch server metadata after validation (#8964)
This commit is contained in:
commit
74d591e6e9
3 changed files with 29 additions and 0 deletions
|
|
@ -179,6 +179,9 @@ public function handle(): void
|
||||||
// Mark validation as complete
|
// Mark validation as complete
|
||||||
$this->server->update(['is_validating' => false]);
|
$this->server->update(['is_validating' => false]);
|
||||||
|
|
||||||
|
// Auto-fetch server details now that validation passed
|
||||||
|
$this->server->gatherServerMetadata();
|
||||||
|
|
||||||
// Refresh server to get latest state
|
// Refresh server to get latest state
|
||||||
$this->server->refresh();
|
$this->server->refresh();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -198,6 +198,9 @@ public function validateDockerVersion()
|
||||||
// Mark validation as complete
|
// Mark validation as complete
|
||||||
$this->server->update(['is_validating' => false]);
|
$this->server->update(['is_validating' => false]);
|
||||||
|
|
||||||
|
// Auto-fetch server details now that validation passed
|
||||||
|
$this->server->gatherServerMetadata();
|
||||||
|
|
||||||
$this->dispatch('refreshServerShow');
|
$this->dispatch('refreshServerShow');
|
||||||
$this->dispatch('refreshBoardingIndex');
|
$this->dispatch('refreshBoardingIndex');
|
||||||
ServerValidated::dispatch($this->server->team_id, $this->server->uuid);
|
ServerValidated::dispatch($this->server->team_id, $this->server->uuid);
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,11 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
use App\Livewire\Server\ValidateAndInstall;
|
||||||
use App\Models\Server;
|
use App\Models\Server;
|
||||||
use App\Models\Team;
|
use App\Models\Team;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||||
|
use Livewire\Livewire;
|
||||||
|
|
||||||
uses(RefreshDatabase::class);
|
uses(RefreshDatabase::class);
|
||||||
|
|
||||||
|
|
@ -94,3 +96,24 @@
|
||||||
expect($this->server->server_metadata['os'])->toBe('Ubuntu 22.04')
|
expect($this->server->server_metadata['os'])->toBe('Ubuntu 22.04')
|
||||||
->and($this->server->server_metadata['cpus'])->toBe(4);
|
->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');
|
||||||
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue