diff --git a/utils/table_printer.go b/utils/table_printer.go index 649e246e1..e1bf9bc36 100644 --- a/utils/table_printer.go +++ b/utils/table_printer.go @@ -176,7 +176,10 @@ func (t *tsvTablePrinter) Render() error { func truncate(maxLength int, title string) string { if len(title) > maxLength { - return title[0:maxLength-3] + "..." + if maxLength > 3 { + return title[0:maxLength-3] + "..." + } + return title[0:maxLength] } return title } diff --git a/utils/table_printer_test.go b/utils/table_printer_test.go new file mode 100644 index 000000000..2e3e4e803 --- /dev/null +++ b/utils/table_printer_test.go @@ -0,0 +1,31 @@ +package utils + +import ( + "bytes" + "testing" +) + +func Test_ttyTablePrinter_truncate(t *testing.T) { + buf := bytes.Buffer{} + tp := &ttyTablePrinter{ + out: &buf, + maxWidth: 5, + } + + tp.AddField("1", nil, nil) + tp.AddField("hello", nil, nil) + tp.EndRow() + tp.AddField("2", nil, nil) + tp.AddField("world", nil, nil) + tp.EndRow() + + err := tp.Render() + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + expected := "1 he\n2 wo\n" + if buf.String() != expected { + t.Errorf("expected: %q, got: %q", expected, buf.String()) + } +}