39 lines
736 B
Go
39 lines
736 B
Go
package render
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
|
|
"beelloo/internal/invoice"
|
|
)
|
|
|
|
func TestRenderHTMLGolden(t *testing.T) {
|
|
file, err := os.Open("../../testdata/sample.md")
|
|
if err != nil {
|
|
t.Fatalf("open sample: %v", err)
|
|
}
|
|
defer file.Close()
|
|
|
|
doc, err := invoice.ParseMarkdown(file)
|
|
if err != nil {
|
|
t.Fatalf("ParseMarkdown: %v", err)
|
|
}
|
|
if err := invoice.Validate(&doc); err != nil {
|
|
t.Fatalf("Validate: %v", err)
|
|
}
|
|
|
|
html, err := RenderHTML(doc)
|
|
if err != nil {
|
|
t.Fatalf("RenderHTML: %v", err)
|
|
}
|
|
|
|
goldenPath := "../../testdata/sample.html"
|
|
golden, err := os.ReadFile(goldenPath)
|
|
if err != nil {
|
|
t.Fatalf("read golden: %v", err)
|
|
}
|
|
if string(golden) != html {
|
|
t.Fatalf("render output did not match golden file")
|
|
}
|
|
}
|