//go:build go1.21 package indenthandler import ( "bytes" "regexp" "testing" "log/slog" ) func Test(t *testing.T) { var buf bytes.Buffer l := slog.New(New(&buf, nil)) l.Info("hello", "a", 1, "b", true, "c", 3.14, slog.Group("g", "h", 1, "i", 2), "d", "NO") got := buf.String() wantre := `time: [-0-9T:.]+Z? level: INFO source: ".*/indent_handler_test.go:\d+" msg: "hello" a: 1 b: true c: 3.14 g: h: 1 i: 2 d: "NO" ` re := regexp.MustCompile(wantre) if !re.MatchString(got) { t.Errorf("\ngot:\n%q\nwant:\n%q", got, wantre) } buf.Reset() l.Debug("test") if got := buf.Len(); got != 0 { t.Errorf("got buf.Len() = %d, want 0", got) } }