dendrite.daemon/test/frontmatter_test.go

56 lines
1.2 KiB
Go

package frontmatter_test
import (
"strings"
"testing"
"github.com/KristianJBorgwarth/dendrite.daemon/core/frontmatter"
)
func TestParseFrontMatter(t *testing.T) {
input := `title: My Note
template: default
tags: ["test", "note"]
---
This is the content of the note.`
expected := map[string]string{
"title": "My Note",
"template": "default",
"tags": `["test", "note"]`,
}
result, err := frontmatter.ParseFrontMatter(strings.NewReader(input))
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
for key, expectedValue := range expected {
if value, ok := result[key]; !ok || value != expectedValue {
t.Errorf("expected %s to be %s, got %s", key, expectedValue, value)
}
}
}
func TestExtractTags(t *testing.T) {
frontMatter := map[string]string{
"tags": `["test", "note"]`,
}
expected := []string{"test", "note"}
result, err := frontmatter.ExtractTags(frontMatter)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if len(result) != len(expected) {
t.Fatalf("expected %d tags, got %d", len(expected), len(result))
}
for i, expectedTag := range expected {
if result[i] != expectedTag {
t.Errorf("expected tag %d to be %s, got %s", i, expectedTag, result[i])
}
}
}