feat(server): GET /api/hosts/:name returns latest fast/medium/slow samples

This commit is contained in:
Carsten 2026-04-21 22:30:35 +02:00
parent f09a77996b
commit 30b507ba6b
3 changed files with 71 additions and 4 deletions

View file

@ -0,0 +1,36 @@
defmodule ServerWeb.HostControllerTest do
use ServerWeb.ConnCase, async: true
alias Server.{Hosts, Metrics}
describe "GET /api/hosts/:name" do
setup do
{:ok, {host, _token}} = Hosts.create_host("pve-01")
{:ok, _} =
Metrics.record_sample(
host.id,
"fast",
DateTime.utc_now(),
%{"host" => %{"load1" => 0.5}}
)
%{host: host}
end
test "returns host info and latest samples", %{conn: conn, host: host} do
conn = get(conn, ~p"/api/hosts/#{host.name}")
assert %{
"name" => "pve-01",
"status" => _,
"samples" => %{"fast" => %{"payload" => %{"host" => %{"load1" => 0.5}}}}
} = json_response(conn, 200)
end
test "returns 404 for unknown host", %{conn: conn} do
conn = get(conn, ~p"/api/hosts/nope")
assert json_response(conn, 404) == %{"error" => "host_not_found"}
end
end
end