(t *testing.T)
| 220 | } |
| 221 | |
| 222 | func TestBatchHandlerWriteAll(t *testing.T) { |
| 223 | ctx := context.Background() |
| 224 | |
| 225 | beforeLogs := []*Log{} |
| 226 | writeLogs := []*Log{} |
| 227 | |
| 228 | h := NewBatchHandler(BatchOptions{ |
| 229 | BatchSize: 3, |
| 230 | BeforeAddFunc: func(_ context.Context, log *Log) bool { |
| 231 | beforeLogs = append(beforeLogs, log) |
| 232 | return true |
| 233 | }, |
| 234 | WriteFunc: func(_ context.Context, logs []*Log) error { |
| 235 | writeLogs = logs |
| 236 | return nil |
| 237 | }, |
| 238 | }) |
| 239 | |
| 240 | h.Handle(ctx, slog.NewRecord(time.Now(), slog.LevelInfo, "test1", 0)) |
| 241 | h.Handle(ctx, slog.NewRecord(time.Now(), slog.LevelInfo, "test2", 0)) |
| 242 | |
| 243 | checkLogMessages([]string{"test1", "test2"}, beforeLogs, t) |
| 244 | checkLogMessages([]string{"test1", "test2"}, h.logs, t) |
| 245 | checkLogMessages([]string{}, writeLogs, t) // empty because the batch size hasn't been reached |
| 246 | |
| 247 | // force trigger the batch write |
| 248 | h.WriteAll(ctx) |
| 249 | |
| 250 | checkLogMessages([]string{"test1", "test2"}, beforeLogs, t) |
| 251 | checkLogMessages([]string{}, h.logs, t) // reset |
| 252 | checkLogMessages([]string{"test1", "test2"}, writeLogs, t) |
| 253 | } |
| 254 | |
| 255 | func TestBatchHandlerAttrsFormat(t *testing.T) { |
| 256 | ctx := context.Background() |
nothing calls this directly
no test coverage detected
searching dependent graphs…