Files
cairnquire/apps/server/internal/markdown/renderer_test.go

54 lines
1.3 KiB
Go

package markdown
import (
"strings"
"testing"
)
func TestRenderRewritesWikiLinksAndTags(t *testing.T) {
renderer := NewRenderer()
result, err := renderer.Render([]byte("# Title\n\nLink to [[Project Plan]] and #alpha #beta.\n"))
if err != nil {
t.Fatalf("Render() error = %v", err)
}
if !strings.Contains(string(result.HTML), `/docs/project-plan`) {
t.Fatalf("expected wiki-link rewrite, got %s", result.HTML)
}
if len(result.Tags) != 2 || result.Tags[0] != "alpha" || result.Tags[1] != "beta" {
t.Fatalf("unexpected tags: %#v", result.Tags)
}
if strings.Contains(string(result.HTML), "<h1") {
t.Fatalf("expected first h1 to be removed from body html, got %s", result.HTML)
}
}
func TestRenderPathFallsBackToCleanedFileName(t *testing.T) {
renderer := NewRenderer()
result, err := renderer.RenderPath([]byte("Body only\n"), "guide/api-reference.md")
if err != nil {
t.Fatalf("RenderPath() error = %v", err)
}
if result.Title != "Api Reference" {
t.Fatalf("Title = %q, want Api Reference", result.Title)
}
}
func TestRenderPathUsesFolderNameForIndexFiles(t *testing.T) {
renderer := NewRenderer()
result, err := renderer.RenderPath([]byte("Body only\n"), "guide/index.md")
if err != nil {
t.Fatalf("RenderPath() error = %v", err)
}
if result.Title != "Guide" {
t.Fatalf("Title = %q, want Guide", result.Title)
}
}