From a4c3a83034cfd7c99d249e6ccb1ae52da8cf2187 Mon Sep 17 00:00:00 2001 From: Tim MacDonald Date: Mon, 22 Jan 2024 12:05:48 +1100 Subject: [PATCH] Ensure consistent order --- src/Livewire/Servers.php | 3 ++- tests/Feature/Livewire/ServersTest.php | 28 ++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/Livewire/Servers.php b/src/Livewire/Servers.php index e52db790..fe3a47aa 100644 --- a/src/Livewire/Servers.php +++ b/src/Livewire/Servers.php @@ -37,7 +37,8 @@ public function render(): Renderable 'updated_at' => $updatedAt = CarbonImmutable::createFromTimestamp($system->timestamp), 'recently_reported' => $updatedAt->isAfter(now()->subSeconds(30)), ]; - }); + }) + ->sortBy('name'); }); if (Livewire::isLivewireRequest()) { diff --git a/tests/Feature/Livewire/ServersTest.php b/tests/Feature/Livewire/ServersTest.php index f727a872..82cbddfc 100644 --- a/tests/Feature/Livewire/ServersTest.php +++ b/tests/Feature/Livewire/ServersTest.php @@ -59,3 +59,31 @@ ], ])); }); + +it('sorts by server name', function () { + $data = [ + 'memory_used' => 1234, + 'memory_total' => 2468, + 'cpu' => 99, + 'storage' => [ + ['directory' => '/', 'used' => 123, 'total' => 456], + ], + ]; + Pulse::set('system', 'b-web', json_encode([ + 'name' => 'B Web', + ...$data, + ])); + Pulse::set('system', 'a-web', json_encode([ + 'name' => 'A Web', + ...$data, + ])); + Pulse::set('system', 'c-web', json_encode([ + 'name' => 'C Web', + ...$data, + ])); + + Pulse::ingest(); + + Livewire::test(Servers::class, ['lazy' => false]) + ->assertSeeInOrder(['A Web', 'B Web', 'C Web']); +});