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]) } } }