60 lines
1.4 KiB
Go
60 lines
1.4 KiB
Go
|
package report
|
||
|
|
||
|
import (
|
||
|
"strings"
|
||
|
"testing"
|
||
|
|
||
|
"github.com/stretchr/testify/assert"
|
||
|
)
|
||
|
|
||
|
func TestTable(t *testing.T) {
|
||
|
cols := []string{"Col1", "Col2"}
|
||
|
rows := [][]string{
|
||
|
{"foo", "bar" + strings.Repeat(", abc", 30)},
|
||
|
{"bar", "b & a | z"}}
|
||
|
|
||
|
t.Run("DefaultTable", func(t *testing.T) {
|
||
|
result, err := Render(rows, cols, Default)
|
||
|
if err != nil {
|
||
|
t.Fatal(err)
|
||
|
}
|
||
|
assert.Contains(t, result, "| bar | b & a | z |")
|
||
|
})
|
||
|
t.Run("MarkdownTable", func(t *testing.T) {
|
||
|
result, err := Render(rows, cols, Markdown)
|
||
|
if err != nil {
|
||
|
t.Fatal(err)
|
||
|
}
|
||
|
// fmt.Println(result)
|
||
|
assert.Contains(t, result, "| bar | b & a \\| z")
|
||
|
})
|
||
|
t.Run("CsvExport", func(t *testing.T) {
|
||
|
result, err := Render(rows, cols, CSV)
|
||
|
if err != nil {
|
||
|
t.Fatal(err)
|
||
|
}
|
||
|
|
||
|
expected := "Col1;Col2\nfoo;bar, abc, abc, abc, abc, abc, abc," +
|
||
|
" abc, abc, abc, abc, abc, abc, abc, abc, abc," +
|
||
|
" abc, abc, abc, abc, abc, abc, abc, abc, abc," +
|
||
|
" abc, abc, abc, abc, abc, abc\nbar;b & a \\| z\n"
|
||
|
|
||
|
assert.Equal(t, expected, result)
|
||
|
})
|
||
|
t.Run("TsvExport", func(t *testing.T) {
|
||
|
result, err := Render(rows, cols, TSV)
|
||
|
if err != nil {
|
||
|
t.Fatal(err)
|
||
|
}
|
||
|
|
||
|
assert.Contains(t, result, "Col1\tCol2\nfoo\tbar, abc, abc")
|
||
|
})
|
||
|
t.Run("Invalid", func(t *testing.T) {
|
||
|
_, err := Render(rows, cols, Format("invalid"))
|
||
|
|
||
|
if err == nil {
|
||
|
t.Fatal("error expected")
|
||
|
}
|
||
|
})
|
||
|
}
|