package webapp import ( "strings" "testing" ) // A leading YAML frontmatter block renders as a key/value table (author // key order, escaped values) instead of goldmark's thematic-break soup; // everything that isn't a clean frontmatter mapping renders exactly as // before. func TestRenderMarkdownFrontmatter(t *testing.T) { src := `--- title: Q3 findings tags: [churn, revenue] owner: snow@runbear.io meta: reviewed: true --- # Body Hello.` out, err := RenderMarkdown([]byte(src)) if err != nil { t.Fatal(err) } for _, want := range []string{ ``, ``, ``, // flat lists comma-join `owner`, `snow@runbear.io`, `reviewed: true`, // nested values as compact YAML `

Body

`, // the body still renders } { if !strings.Contains(out, want) { t.Errorf("missing %q in:\n%s", want, out) } } if strings.Contains(out, "title<") > strings.Index(out, ">owner<") { t.Errorf("frontmatter keys reordered:\n%s", out) } } func TestRenderMarkdownFrontmatterEscapes(t *testing.T) { out, err := RenderMarkdown([]byte("---\nnote: \n---\nx")) if err != nil { t.Fatal(err) } if strings.Contains(out, "
titleQ3 findingschurn, revenue