defmodule ProxmoxAgent.Collectors.HostTest do use ExUnit.Case, async: true alias ProxmoxAgent.Collectors.Host @proc Path.expand("../../fixtures/proc", __DIR__) test "collects load average" do sample = Host.collect(proc_dir: @proc) assert sample.load1 == 0.42 assert sample.load5 == 0.55 assert sample.load15 == 0.31 end test "collects memory in bytes" do sample = Host.collect(proc_dir: @proc) assert sample.mem_total_bytes == 16_384_000 * 1024 assert sample.mem_available_bytes == 8_192_000 * 1024 assert sample.mem_used_bytes == sample.mem_total_bytes - sample.mem_available_bytes end test "collects uptime seconds" do sample = Host.collect(proc_dir: @proc) assert sample.uptime_seconds == 123_456 end test "includes hostname string" do sample = Host.collect(proc_dir: @proc) assert is_binary(sample.hostname) assert sample.hostname != "" end test "missing proc files yield :errors field, not a crash" do sample = Host.collect(proc_dir: "/nonexistent/path/xyz") assert sample.errors != [] end end