43 lines
940 B
Go
43 lines
940 B
Go
package parser_test
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"git.max-richter.dev/max/marka/parser"
|
|
"git.max-richter.dev/max/marka/registry"
|
|
)
|
|
|
|
func TestParseBaguette(t *testing.T) {
|
|
recipeMd := readTestDataFile(t, "baguette.md")
|
|
|
|
template, err := registry.GetTemplate("recipe")
|
|
if err != nil {
|
|
t.Fatalf("Err: %s", err)
|
|
}
|
|
|
|
blocks, err := parser.ExtractBlocks(template)
|
|
if err != nil {
|
|
t.Fatalf("Err: %s", err)
|
|
}
|
|
|
|
matches := parser.MatchBlocksFuzzy(recipeMd, blocks, 0.3)
|
|
parsed := parser.Parse(matches)
|
|
expected := map[string]any{
|
|
"name": "Baguette",
|
|
"description": "My favourite baguette recipe",
|
|
"recipeIngredient": []string{"Flour", "Water", "Salt"},
|
|
// "recipeInstructions": []string{
|
|
// "Mix Flour Water and Salt",
|
|
// "Bake the bread",
|
|
// },
|
|
}
|
|
|
|
for k, v := range expected {
|
|
if fmt.Sprintf("%v", parsed[k]) != fmt.Sprintf("%v", v) {
|
|
t.Errorf("Expected %v but got %v", v, parsed[k])
|
|
}
|
|
}
|
|
|
|
}
|