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