37 lines
1.1 KiB
Go
37 lines
1.1 KiB
Go
package health
|
|
|
|
import (
|
|
"context"
|
|
"strings"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestSampleReportsHostDataAndUnconfiguredDimensionsAsUnknown(t *testing.T) {
|
|
sample := (Sampler{Now: func() time.Time { return time.Unix(100, 0) }}).Sample(context.Background(), t.TempDir())
|
|
if sample.ObservedAtUnixMs != 100000 {
|
|
t.Fatalf("observed_at=%d", sample.ObservedAtUnixMs)
|
|
}
|
|
if sample.MemoryAvailableBytes <= 0 || sample.SpoolCapacityBytes <= 0 || sample.FdLimit <= 0 {
|
|
t.Fatalf("expected host observations: %+v", sample)
|
|
}
|
|
if sample.SampleFresh {
|
|
t.Fatal("expected sample to remain unknown until media/AI dimensions are connected")
|
|
}
|
|
if !strings.Contains(sample.MissingReason, "media_ports") || !strings.Contains(sample.MissingReason, "ai_quota") {
|
|
t.Fatalf("missing reason=%q", sample.MissingReason)
|
|
}
|
|
}
|
|
|
|
func TestSampleFailsClosedForCanceledContext(t *testing.T) {
|
|
ctx, cancel := context.WithCancel(context.Background())
|
|
cancel()
|
|
sample := (Sampler{}).Sample(ctx, t.TempDir())
|
|
if sample.SampleFresh {
|
|
t.Fatal("canceled sample must not be fresh")
|
|
}
|
|
if sample.MissingReason == "" {
|
|
t.Fatal("canceled sample must explain missing data")
|
|
}
|
|
}
|