]> git.giacomolli.uk - onechat/blobdiff - terminal_markdown_test.go
Select notification targets by stable ID
[onechat] / terminal_markdown_test.go
index 6344d8dba054e490a3659525cbe0ee6fa51bdeea..0eb32225f95ac005cbf13305338cafcdc1af2709 100644 (file)
@@ -16,13 +16,13 @@ func TestTerminalMarkdownBlocksAndMarks(t *testing.T) {
                want    []string
        }{
                {
                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"},
                },
                {
                        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"},
                        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"},
@@ -88,6 +88,7 @@ func TestTerminalMarkdownBlocksAndMarks(t *testing.T) {
                        want:    []string{"safe[31m    end"},
                },
        }
                        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))
        for _, tc := range testCases {
                t.Run(tc.name, func(t *testing.T) {
                        require.Equal(t, tc.want, terminalMarkdown(tc.text, tc.columns))
@@ -145,6 +146,7 @@ func TestTerminalMarkdownNarrowLinesKeepQuoteAndListMarks(t *testing.T) {
                        want:    []string{"| a", "| b"},
                },
        }
                        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))
        for _, tc := range testCases {
                t.Run(tc.name, func(t *testing.T) {
                        require.Equal(t, tc.want, terminalMarkdown(tc.text, tc.columns))
@@ -183,6 +185,14 @@ func TestTerminalMarkdownSmallTablesKeepNaturalWidths(t *testing.T) {
        }, lines)
 }
 
        }, 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",
 func TestTerminalMarkdownSingleCharacterColumnsStayNarrow(t *testing.T) {
        require.Equal(t, []string{
                "\x1b[1mA\x1b[0m | \x1b[1mB\x1b[0m",
@@ -229,7 +239,7 @@ func TestTerminalMarkdownTablesStackWhenColumnsCannotFit(t *testing.T) {
                text.WriteString(plain)
        }
 
                text.WriteString(plain)
        }
 
-       require.Equal(t, "FirstSecondalphabeta", text.String())
+       require.Equal(t, "FirstSecond----alphabeta", text.String())
 }
 
 func TestTerminalMarkdownWidthDefaultsToEighty(t *testing.T) {
 }
 
 func TestTerminalMarkdownWidthDefaultsToEighty(t *testing.T) {