want []string
}{
{
- name: "headings and a full width rule",
+ name: "renders headings and fills the rule width",
text: "# First\n###### Last ###\n---",
columns: 12,
want: []string{"\x1b[1mFirst\x1b[0m", "\x1b[1mLast\x1b[0m", "\x1b[2m------------\x1b[0m"},
},
{
- name: "bold italic and code",
+ name: "renders bold italic and inline code styles",
text: "**bold** __also__ *lean* _also_ `code`",
columns: 80,
want: []string{"\x1b[1mbold\x1b[0m \x1b[1malso\x1b[0m \x1b[3mlean\x1b[0m \x1b[3malso\x1b[0m \x1b[7mcode\x1b[0m"},
want: []string{"safe[31m end"},
},
}
+
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
require.Equal(t, tc.want, terminalMarkdown(tc.text, tc.columns))
want: []string{"| a", "| b"},
},
}
+
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
require.Equal(t, tc.want, terminalMarkdown(tc.text, tc.columns))
}, lines)
}
+func TestTerminalMarkdownSingleColumnTablesKeepTheirHeaderRule(t *testing.T) {
+ require.Equal(t, []string{
+ "\x1b[1mName\x1b[0m",
+ "\x1b[2m----\x1b[0m",
+ "One ",
+ }, terminalMarkdown("| Name |\n| --- |\n| One |", 80))
+}
+
func TestTerminalMarkdownSingleCharacterColumnsStayNarrow(t *testing.T) {
require.Equal(t, []string{
"\x1b[1mA\x1b[0m | \x1b[1mB\x1b[0m",
text.WriteString(plain)
}
- require.Equal(t, "FirstSecondalphabeta", text.String())
+ require.Equal(t, "FirstSecond----alphabeta", text.String())
}
func TestTerminalMarkdownWidthDefaultsToEighty(t *testing.T) {