feat(ui): add Open server links on destination cards

Link primary and additional destination server cards to their server
pages via wire:navigate, and cover the markup in a feature test.
This commit is contained in:
Andras Bacsai
2026-08-07 14:43:04 +02:00
parent 8ae9c03209
commit a6f71909fd
2 changed files with 15 additions and 0 deletions
@@ -33,6 +33,8 @@
</div>
<div class="flex flex-wrap items-center gap-2 sm:justify-end">
<a href="{{ route('server.show', ['server_uuid' => data_get($resource, 'destination.server.uuid')]) }}"
{{ wireNavigate() }} class="button">Open server</a>
<x-status-summary :status="$resource->status" />
@if ($hasAdditionalDestinations)
<x-forms.button canGate="deploy" :canResource="$resource"
@@ -86,6 +88,8 @@
</div>
<div class="flex flex-wrap items-center gap-2 lg:justify-end">
<a href="{{ route('server.show', ['server_uuid' => data_get($destination, 'server.uuid')]) }}"
{{ wireNavigate() }} class="button">Open server</a>
@if ($destinationStatus->startsWith('running'))
<x-status.running :status="$destinationStatus->value()" />
@elseif ($destinationStatus->startsWith(['starting', 'restarting']))
@@ -211,6 +215,8 @@
</div>
<div class="flex flex-wrap items-center gap-2 sm:justify-end">
<a href="{{ route('server.show', ['server_uuid' => data_get($resource, 'destination.server.uuid')]) }}"
{{ wireNavigate() }} class="button">Open server</a>
@if ($primaryStatus->startsWith('running'))
<x-status.running :status="$primaryStatus->value()" />
@elseif ($primaryStatus->startsWith(['starting', 'restarting']))
@@ -8,3 +8,12 @@ it('uses the shared status summary in the primary application server card', func
->toContain('<x-status-summary :status="$resource->status" />')
->not->toContain('<x-status :resource="$resource"');
});
it('links each configured server card to its server page', function () {
$view = file_get_contents(resource_path('views/livewire/project/shared/destination.blade.php'));
expect($view)
->toContain("route('server.show', ['server_uuid' => data_get(\$resource, 'destination.server.uuid')])")
->toContain("route('server.show', ['server_uuid' => data_get(\$destination, 'server.uuid')])")
->toContain('Open server');
});