package logger import ( "fmt" "testing" ) // TestGetLogs_ReturnsAtMostC guards the documented "up to c entries" contract. // The loop condition must cap output at c (ERROR entries are queried at "debug" // level so the level filter passes all of them, isolating the count). func TestGetLogs_ReturnsAtMostC(t *testing.T) { logBufferMu.Lock() logBuffer = nil logBufferMu.Unlock() for i := 0; i < 5; i++ { addToBuffer("ERROR", fmt.Sprintf("m%d", i)) } cases := []struct{ c, want int }{ {0, 0}, {2, 2}, {5, 5}, {10, 5}, // capped at what's available } for _, tc := range cases { if got := GetLogs(tc.c, "debug"); len(got) != tc.want { t.Errorf("GetLogs(%d) returned %d entries, want %d", tc.c, len(got), tc.want) } } }