package logging import ( "log/slog" "testing" "time" ) func TestRecentStoreListNewestFirst(t *testing.T) { t.Parallel() store := NewRecentStore(3) store.Add(Entry{Message: "first", Timestamp: time.Unix(1, 0)}) store.Add(Entry{Message: "second", Timestamp: time.Unix(2, 0)}) store.Add(Entry{Message: "third", Timestamp: time.Unix(3, 0)}) store.Add(Entry{Message: "fourth", Timestamp: time.Unix(4, 0)}) got := store.List(2) if len(got) != 2 { t.Fatalf("expected 2 entries, got %d", len(got)) } if got[0].Message != "fourth" || got[1].Message != "third" { t.Fatalf("unexpected order: %+v", got) } } func TestRecentHandlerCapturesFields(t *testing.T) { t.Parallel() store := NewRecentStore(5) h := NewRecentHandler(store, slog.LevelInfo) logger := slog.New(h) logger.Info("test event", "component", "autofill", "suggestion_count", 7) items := store.List(1) if len(items) != 1 { t.Fatalf("expected 1 entry, got %d", len(items)) } if items[0].Fields["component"] != "autofill" { t.Fatalf("missing component field: %+v", items[0].Fields) } if items[0].Fields["suggestion_count"] != int64(7) { t.Fatalf("missing suggestion_count field: %+v", items[0].Fields) } }