No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

46 líneas
1.2KB

  1. package logging
  2. import (
  3. "log/slog"
  4. "testing"
  5. "time"
  6. )
  7. func TestRecentStoreListNewestFirst(t *testing.T) {
  8. t.Parallel()
  9. store := NewRecentStore(3)
  10. store.Add(Entry{Message: "first", Timestamp: time.Unix(1, 0)})
  11. store.Add(Entry{Message: "second", Timestamp: time.Unix(2, 0)})
  12. store.Add(Entry{Message: "third", Timestamp: time.Unix(3, 0)})
  13. store.Add(Entry{Message: "fourth", Timestamp: time.Unix(4, 0)})
  14. got := store.List(2)
  15. if len(got) != 2 {
  16. t.Fatalf("expected 2 entries, got %d", len(got))
  17. }
  18. if got[0].Message != "fourth" || got[1].Message != "third" {
  19. t.Fatalf("unexpected order: %+v", got)
  20. }
  21. }
  22. func TestRecentHandlerCapturesFields(t *testing.T) {
  23. t.Parallel()
  24. store := NewRecentStore(5)
  25. h := NewRecentHandler(store, slog.LevelInfo)
  26. logger := slog.New(h)
  27. logger.Info("test event", "component", "autofill", "suggestion_count", 7)
  28. items := store.List(1)
  29. if len(items) != 1 {
  30. t.Fatalf("expected 1 entry, got %d", len(items))
  31. }
  32. if items[0].Fields["component"] != "autofill" {
  33. t.Fatalf("missing component field: %+v", items[0].Fields)
  34. }
  35. if items[0].Fields["suggestion_count"] != int64(7) {
  36. t.Fatalf("missing suggestion_count field: %+v", items[0].Fields)
  37. }
  38. }