mirror of
https://github.com/kovetskiy/mark.git
synced 2025-09-16 09:27:38 +08:00
63 lines
1.5 KiB
Go
63 lines
1.5 KiB
Go
package metadata
|
|
|
|
import (
|
|
"os"
|
|
"path"
|
|
"runtime"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestExtractDocumentLeadingH1(t *testing.T) {
|
|
_, filename, _, _ := runtime.Caller(0)
|
|
dir := path.Join(path.Dir(filename), "..")
|
|
err := os.Chdir(dir)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
filename = "testdata/header.md"
|
|
|
|
markdown, err := os.ReadFile(filename)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
actual := ExtractDocumentLeadingH1(markdown)
|
|
|
|
assert.Equal(t, "a", actual)
|
|
}
|
|
|
|
func TestSetTitleFromFilename(t *testing.T) {
|
|
t.Run("set title from filename", func(t *testing.T) {
|
|
meta := &Meta{Title: ""}
|
|
setTitleFromFilename(meta, "/path/to/test.md")
|
|
assert.Equal(t, "Test", meta.Title)
|
|
})
|
|
|
|
t.Run("replace underscores with spaces", func(t *testing.T) {
|
|
meta := &Meta{Title: ""}
|
|
setTitleFromFilename(meta, "/path/to/test_with_underscores.md")
|
|
assert.Equal(t, "Test With Underscores", meta.Title)
|
|
})
|
|
|
|
t.Run("replace dashes with spaces", func(t *testing.T) {
|
|
meta := &Meta{Title: ""}
|
|
setTitleFromFilename(meta, "/path/to/test-with-dashes.md")
|
|
assert.Equal(t, "Test With Dashes", meta.Title)
|
|
})
|
|
|
|
t.Run("mixed underscores and dashes", func(t *testing.T) {
|
|
meta := &Meta{Title: ""}
|
|
setTitleFromFilename(meta, "/path/to/test_with-mixed_separators.md")
|
|
assert.Equal(t, "Test With Mixed Separators", meta.Title)
|
|
})
|
|
|
|
t.Run("already title cased", func(t *testing.T) {
|
|
meta := &Meta{Title: ""}
|
|
setTitleFromFilename(meta, "/path/to/Already-Title-Cased.md")
|
|
assert.Equal(t, "Already Title Cased", meta.Title)
|
|
})
|
|
}
|