Files
2026-02-28 16:37:37 +08:00

36 lines
802 B
Go

package observability
import (
"testing"
"time"
)
func TestCollectorSnapshot(t *testing.T) {
t.Parallel()
c := NewCollector()
c.Observe(200, 100*time.Millisecond)
c.Observe(404, 300*time.Millisecond)
c.Observe(500, 500*time.Millisecond)
s := c.Snapshot()
if s.TotalRequests != 3 {
t.Fatalf("total_requests=%d, want=3", s.TotalRequests)
}
if s.ClientErrors != 1 {
t.Fatalf("client_errors=%d, want=1", s.ClientErrors)
}
if s.ServerErrors != 1 {
t.Fatalf("server_errors=%d, want=1", s.ServerErrors)
}
if s.ServerErrorRatePct <= 0 {
t.Fatalf("server_error_rate_pct=%f, want>0", s.ServerErrorRatePct)
}
if s.AvgLatencyMs <= 0 {
t.Fatalf("avg_latency_ms=%f, want>0", s.AvgLatencyMs)
}
if s.MaxLatencyMs < 500 {
t.Fatalf("max_latency_ms=%f, want>=500", s.MaxLatencyMs)
}
}