package app import ( "testing" "github.com/jan/fm-rds-tx/internal/output" ) func TestRuntimeIndicator(t *testing.T) { cases := []struct { name string queueHealth output.QueueHealth lateBuffers uint64 want RuntimeIndicator }{ { name: "normal", queueHealth: output.QueueHealthNormal, lateBuffers: 0, want: RuntimeIndicatorNormal, }, { name: "degradedLateBuffers", queueHealth: output.QueueHealthNormal, lateBuffers: 1, want: RuntimeIndicatorDegraded, }, { name: "degradedQueueLow", queueHealth: output.QueueHealthLow, lateBuffers: 0, want: RuntimeIndicatorDegraded, }, { name: "queueCritical", queueHealth: output.QueueHealthCritical, lateBuffers: 0, want: RuntimeIndicatorQueueCritical, }, { name: "criticalLateBuffers", queueHealth: output.QueueHealthCritical, lateBuffers: 3, want: RuntimeIndicatorQueueCritical, }, } for _, tc := range cases { tc := tc t.Run(tc.name, func(t *testing.T) { if got := runtimeIndicator(tc.queueHealth, tc.lateBuffers); got != tc.want { t.Fatalf("runtime indicator mismatch: queue=%s late=%d want=%s got=%s", tc.queueHealth, tc.lateBuffers, tc.want, got) } }) } }