Template
1
0
Fork 0
goth.stack/lib/markdown_test.go
2024-01-17 12:02:03 -07:00

57 lines
1.2 KiB
Go

package lib_test
import (
"io/fs"
"log"
"os"
"path/filepath"
"testing"
"github.com/alecthomas/assert/v2"
"goth.stack/lib"
)
func TestExtractFrontMatter(t *testing.T) {
// Create a temporary file with some front matter
tmpfile, err := os.CreateTemp("../content", "example.*.md")
println(tmpfile.Name())
if err != nil {
log.Fatal(err)
}
defer os.Remove(tmpfile.Name()) // clean up
text := `---
name: "Test Title"
description: "Test Description"
---
# Test Content
`
if _, err := tmpfile.Write([]byte(text)); err != nil {
log.Fatal(err)
}
if err := tmpfile.Close(); err != nil {
log.Fatal(err)
}
// Get the directory entry for the temporary file
dirEntry, err := os.ReadDir(filepath.Dir(tmpfile.Name()))
if err != nil {
log.Fatal(err)
}
var tmpFileEntry fs.DirEntry
for _, entry := range dirEntry {
if entry.Name() == filepath.Base(tmpfile.Name()) {
tmpFileEntry = entry
break
}
}
// Now we can test ExtractFrontMatter
frontMatter, err := lib.ExtractFrontMatter(tmpFileEntry, "../content/")
assert.NoError(t, err)
assert.Equal(t, "Test Title", frontMatter.Name)
assert.Equal(t, "Test Description", frontMatter.Description)
}