Skip to content

Commit

Permalink
Remove extra newline when message contains trailing newlines. (#387)
Browse files Browse the repository at this point in the history
  • Loading branch information
mitar committed Jul 5, 2024
1 parent e864bb0 commit 5f9c5cc
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 6 deletions.
2 changes: 1 addition & 1 deletion kong.go
Original file line number Diff line number Diff line change
Expand Up @@ -373,7 +373,7 @@ func (k *Kong) applyHookToDefaultFlags(ctx *Context, node *Node, name string) er
}

func formatMultilineMessage(w io.Writer, leaders []string, format string, args ...interface{}) {
lines := strings.Split(fmt.Sprintf(format, args...), "\n")
lines := strings.Split(strings.TrimRight(fmt.Sprintf(format, args...), "\n"), "\n")
leader := ""
for _, l := range leaders {
if l == "" {
Expand Down
23 changes: 18 additions & 5 deletions kong_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -593,11 +593,24 @@ func TestSliceWithDisabledSeparator(t *testing.T) {
}

func TestMultilineMessage(t *testing.T) {
w := &bytes.Buffer{}
var cli struct{}
p := mustNew(t, &cli, kong.Writers(w, w))
p.Printf("hello\nworld")
assert.Equal(t, "test: hello\n world\n", w.String())
tests := []struct {
name string
text string
want string
}{
{"Simple", "hello\nworld", "test: hello\n world\n"},
{"WithNewline", "hello\nworld\n", "test: hello\n world\n"},
}
for _, test := range tests {
test := test
t.Run(test.name, func(t *testing.T) {
w := &bytes.Buffer{}
var cli struct{}
p := mustNew(t, &cli, kong.Writers(w, w))
p.Printf(test.text)
assert.Equal(t, test.want, w.String())
})
}
}

type cmdWithRun struct {
Expand Down

0 comments on commit 5f9c5cc

Please sign in to comment.