From 4435a46f07a08465c2b75855be44ce0d622feb3f Mon Sep 17 00:00:00 2001 From: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com> Date: Fri, 3 Jul 2026 10:08:55 +0200 Subject: [PATCH] fix(server): hide sentinel status before validation --- .../views/livewire/server/navbar.blade.php | 7 ++- .../ServerNavbarStatusVisibilityTest.php | 54 +++++++++++++++++++ 2 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 tests/Feature/ServerNavbarStatusVisibilityTest.php diff --git a/resources/views/livewire/server/navbar.blade.php b/resources/views/livewire/server/navbar.blade.php index 463ecef3b..10fdd0f24 100644 --- a/resources/views/livewire/server/navbar.blade.php +++ b/resources/views/livewire/server/navbar.blade.php @@ -15,7 +15,10 @@

Server

- @if ($server->proxySet() || $server->isSentinelEnabled()) + @php + $showSentinelStatus = $server->isFunctional() && $server->isSentinelEnabled(); + @endphp + @if ($server->proxySet() || $showSentinelStatus)
@if ($server->proxySet())
@@ -38,7 +41,7 @@ type="warning" />
@endif - @if ($server->isSentinelEnabled()) + @if ($showSentinelStatus) @if ($server->isSentinelLive()) @else diff --git a/tests/Feature/ServerNavbarStatusVisibilityTest.php b/tests/Feature/ServerNavbarStatusVisibilityTest.php new file mode 100644 index 000000000..e39983552 --- /dev/null +++ b/tests/Feature/ServerNavbarStatusVisibilityTest.php @@ -0,0 +1,54 @@ + 0]); +}); + +function makeNavbarServer(bool $isFunctional): array +{ + $team = Team::factory()->create(); + $user = User::factory()->create(); + $user->teams()->attach($team, ['role' => 'admin']); + + $server = Server::factory()->create([ + 'team_id' => $team->id, + 'sentinel_updated_at' => now(), + ]); + + $server->settings()->update([ + 'is_reachable' => $isFunctional, + 'is_usable' => $isFunctional, + 'is_sentinel_enabled' => true, + ]); + + test()->actingAs($user); + session(['currentTeam' => $team]); + + return [$server->fresh(), $user, $team]; +} + +it('does not show sentinel sync status before the server is validated', function () { + [$server] = makeNavbarServer(isFunctional: false); + + Livewire::test('server.navbar', ['server' => $server]) + ->assertDontSee('Sentinel') + ->assertDontSee('In sync') + ->assertDontSee('Out of sync'); +}); + +it('shows sentinel sync status after the server is validated', function () { + [$server] = makeNavbarServer(isFunctional: true); + + Livewire::test('server.navbar', ['server' => $server]) + ->assertSee('Sentinel') + ->assertSee('In sync'); +});