package controller import ( "testing" "time" perfmetrics "github.com/QuantumNous/new-api/pkg/perf_metrics" "github.com/stretchr/testify/require" ) func TestRequestStatusReplacesReachableProbe(t *testing.T) { monitor := Monitor{Status: 1, Uptime: 1, LastChecked: "probe"} stats := perfmetrics.GroupResult{Group: "test", SuccessRate: 67.9, AvgTtftMs: 7420, Series: []perfmetrics.BucketPoint{{Ts: time.Now().Unix(), SuccessRate: 67.9, AvgTtftMs: 7420}}} applyRequestMetrics(&monitor, stats) require.Equal(t, 0, monitor.Status) require.InDelta(t, 0.679, monitor.Uptime, 0.00001) require.Equal(t, 7420, monitor.History[0].Ping) require.Equal(t, int64(7420), monitor.Metrics.AvgTtftMs) } func TestRequestStatusNoSamplesAndDisabled(t *testing.T) { monitor := Monitor{Status: 1, Uptime: 1} applyRequestMetrics(&monitor, perfmetrics.GroupResult{}) require.Equal(t, -1, monitor.Status) require.Empty(t, monitor.LastChecked) require.Empty(t, monitor.History) monitor.ChannelDisabled = true applyRequestMetrics(&monitor, perfmetrics.GroupResult{SuccessRate: 100, Series: []perfmetrics.BucketPoint{{Ts: time.Now().Unix(), SuccessRate: 100}}}) require.Equal(t, 0, monitor.Status) } func TestRequestStatusStaleSamplesStayUnknown(t *testing.T) { monitor := Monitor{} applyRequestMetrics(&monitor, perfmetrics.GroupResult{ SuccessRate: 100, Series: []perfmetrics.BucketPoint{{ Ts: time.Now().Add(-3 * time.Hour).Unix(), SuccessRate: 100, }}, }) require.Equal(t, -1, monitor.Status) require.NotEmpty(t, monitor.LastChecked) require.NotNil(t, monitor.Metrics) }