package app import ( "os" "path/filepath" "testing" "bee/audit/internal/schema" ) func TestApplyLatestSATStatusesMarksStorageByDevice(t *testing.T) { baseDir := t.TempDir() runDir := filepath.Join(baseDir, "storage-20260325-161151") if err := os.MkdirAll(runDir, 0755); err != nil { t.Fatal(err) } raw := "run_at_utc=2026-03-25T16:11:51Z\nnvme0n1_nvme_smart_log_status=OK\nsda_smartctl_health_status=FAILED\noverall_status=FAILED\n" if err := os.WriteFile(filepath.Join(runDir, "summary.txt"), []byte(raw), 0644); err != nil { t.Fatal(err) } nvme := schema.HardwareStorage{Telemetry: map[string]any{"linux_device": "/dev/nvme0n1"}} usb := schema.HardwareStorage{Telemetry: map[string]any{"linux_device": "/dev/sda"}} snap := schema.HardwareSnapshot{Storage: []schema.HardwareStorage{nvme, usb}} applyLatestSATStatuses(&snap, baseDir) if snap.Storage[0].Status == nil || *snap.Storage[0].Status != "OK" { t.Fatalf("nvme status=%v want OK", snap.Storage[0].Status) } if snap.Storage[1].Status == nil || *snap.Storage[1].Status != "Critical" { t.Fatalf("sda status=%v want Critical", snap.Storage[1].Status) } } func TestApplyLatestSATStatusesMarksAMDGPUs(t *testing.T) { baseDir := t.TempDir() runDir := filepath.Join(baseDir, "gpu-amd-20260325-161436") if err := os.MkdirAll(runDir, 0755); err != nil { t.Fatal(err) } raw := "run_at_utc=2026-03-25T16:14:36Z\noverall_status=FAILED\n" if err := os.WriteFile(filepath.Join(runDir, "summary.txt"), []byte(raw), 0644); err != nil { t.Fatal(err) } class := "DisplayController" manufacturer := "Advanced Micro Devices, Inc. [AMD/ATI]" snap := schema.HardwareSnapshot{ PCIeDevices: []schema.HardwarePCIeDevice{{ DeviceClass: &class, Manufacturer: &manufacturer, }}, } applyLatestSATStatuses(&snap, baseDir) if snap.PCIeDevices[0].Status == nil || *snap.PCIeDevices[0].Status != "Critical" { t.Fatalf("gpu status=%v want Critical", snap.PCIeDevices[0].Status) } }