Files
ITWorx Pulse release export bd774932d5
Public source validation / validate (push) Failing after 3m8s
Publish ITWorx Pulse source
2026-09-03 02:09:19 +02:00

53 lines
2.2 KiB
Go

package disk
import (
"testing"
"time"
)
func float(value float64) *float64 { return &value }
func TestTemperatureHysteresisAndUnsupportedCapabilities(t *testing.T) {
policy := PerformancePolicy{}
if got := TemperatureStatus("normal", 52, policy); got != "attention" {
t.Fatalf("got=%s", got)
}
if got := TemperatureStatus("attention", 48, policy); got != "attention" {
t.Fatalf("got=%s", got)
}
if got := TemperatureStatus("attention", 44, policy); got != "normal" {
t.Fatalf("got=%s", got)
}
spin, err := normalizeSpin(&RawSpin{Supported: false})
if err != nil || spin.State != "unsupported" {
t.Fatalf("spin=%+v err=%v", spin, err)
}
performance, err := normalizePerformance(&RawPerformance{Available: false}, time.Now(), PerformancePolicy{})
if err != nil || performance.State != "unsupported" {
t.Fatalf("performance=%+v err=%v", performance, err)
}
}
func TestPerformanceHistoryIsBoundedAndSorted(t *testing.T) {
now := time.Date(2026, 8, 1, 12, 0, 0, 0, time.UTC)
old := now.Add(-time.Minute)
newer := now.Add(-time.Second)
raw := RawPerformance{Available: true, Current: RawPerformanceSample{ObservedAt: now, ReadBytesPerSecond: float(100)}, History: []RawPerformanceSample{{ObservedAt: old}, {ObservedAt: newer}}}
got, err := normalizePerformance(&raw, now, PerformancePolicy{MaxHistory: 2})
if err != nil || got.State != "available" || len(got.History) != 2 || !got.History[0].ObservedAt.Equal(newer) {
t.Fatalf("performance=%+v err=%v", got, err)
}
raw.History = append(raw.History, RawPerformanceSample{})
if _, err = normalizePerformance(&raw, now, PerformancePolicy{MaxHistory: 2}); err == nil {
t.Fatal("expected history bounds error")
}
}
func TestTemperatureObservationAndPerformanceValuesRejectInvalid(t *testing.T) {
now := time.Date(2026, 8, 1, 12, 0, 0, 0, time.UTC)
future := now.Add(2 * time.Hour)
if _, err := normalizeTemperature(&RawTemperature{Available: true, Celsius: 52, ObservedAt: future}, now, PerformancePolicy{}); err == nil {
t.Fatal("expected future temperature error")
}
if _, err := normalizePerformance(&RawPerformance{Available: true, Current: RawPerformanceSample{ObservedAt: now, ReadBytesPerSecond: float(-1)}}, now, PerformancePolicy{}); err == nil {
t.Fatal("expected invalid performance error")
}
}