photoprism/pkg/report/render_test.go

59 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")
}
})
}