| 123456789101112131415161718192021222324252627282930 |
- 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)
- }
- }
- }
|