package logging_test import ( "bytes" "encoding/json" "log/slog" "testing" "testing/slogtest" "go.sudomsg.com/kit/logging" ) func TestWriterHandler(t *testing.T) { var buf bytes.Buffer slogtest.Run(t, func(t *testing.T) slog.Handler { buf.Reset() sink := logging.NewWriterSink(&buf, logging.JSONEncoder, slog.LevelDebug, nil) return logging.NewSinkHandler(sink) }, func(t *testing.T) map[string]any { t.Helper() if buf.Len() == 0 { t.Fatal("buffer is empty; no log was written") } b := buf.Bytes() r := bytes.NewReader(b) dec := json.NewDecoder(r) m := make(map[string]any) if err := dec.Decode(&m); err != nil { t.Fatalf("%v", err) } return m }, ) }