Pulse/internal/models/memory_availability_test.go
rcourtman 8be236e99a gofmt: realign map literal in memory_availability_test.go
Mechanical formatting drift surfaced by make format; no code change.
2026-08-03 00:17:50 +01:00

51 lines
1.4 KiB
Go

package models
import (
"encoding/json"
"math"
"testing"
)
func TestUnavailableMemorySurvivesJSONReload(t *testing.T) {
before := UnavailableMemory(8 << 30)
payload, err := json.Marshal(before)
if err != nil {
t.Fatalf("json.Marshal() error = %v", err)
}
var after Memory
if err := json.Unmarshal(payload, &after); err != nil {
t.Fatalf("json.Unmarshal() error = %v", err)
}
if !after.UsageUnavailable {
t.Fatalf("UsageUnavailable = false after reload; payload=%s", payload)
}
if after.Total != before.Total {
t.Fatalf("Total = %d, want %d", after.Total, before.Total)
}
if after.HasKnownUsage() {
t.Fatalf("HasKnownUsage() = true after unavailable reload: %+v", after)
}
}
func TestMemoryHasKnownUsageAcceptsTrustedZeroUsage(t *testing.T) {
memory := Memory{Total: 8 << 30, Free: 8 << 30}
if !memory.HasKnownUsage() {
t.Fatalf("HasKnownUsage() = false for a valid zero-usage sample: %+v", memory)
}
}
func TestMemoryHasKnownUsageRejectsNonFiniteAndContradictoryValues(t *testing.T) {
for name, memory := range map[string]Memory{
"nan": {Total: 8 << 30, Used: 4 << 30, Free: 4 << 30, Usage: math.NaN()},
"infinity": {Total: 8 << 30, Used: 4 << 30, Free: 4 << 30, Usage: math.Inf(1)},
"free overflow": {Total: 8 << 30, Free: 9 << 30},
} {
t.Run(name, func(t *testing.T) {
if memory.HasKnownUsage() {
t.Fatalf("HasKnownUsage() = true for invalid memory: %+v", memory)
}
})
}
}