- @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');
+});