package export import ( "bytes" "strings" "testing" "github.com/lukaszkasprzak/lectio/internal/liturgy" ) // sampleSecs builds a reading section the offline way: the English-canonical // lookup reference lives in Ref, the display citation stays in the reader's // sigla dialect. render.GatherVersion resolves Ref against a real embedded // corpus, so the exported document carries actual verse text. func sampleSecs() []liturgy.Section { return []liturgy.Section{{ Heading: "Ewangelia", Citation: "J 20, 1. 11-18", Ref: "John 20:1,11-18", PartID: "ewangelia", }} } func TestMarkdownAndText(t *testing.T) { info := liturgy.DayInfo{Name: "Środa XV tygodnia", Colour: "green"} // vul -> Vulgate Latin verse text, versified ("20:1 Una autem sabbati, // Maria Magdalene ..."). md := Markdown("2026-07-22", info, sampleSecs(), "vul", "new", "en") if !strings.Contains(md, "# Środa") || !strings.Contains(md, "## Gospel") || !strings.Contains(md, "20:1") || !strings.Contains(md, "Maria Magdalene") { t.Errorf("markdown:\n%s", md) } txt := Text("2026-07-22", info, sampleSecs(), "vul", "new", "en") if !strings.Contains(txt, "Maria Magdalene") || !strings.Contains(txt, "Gospel") { t.Errorf("text:\n%s", txt) } } func TestReadingsPDF(t *testing.T) { info := liturgy.DayInfo{Name: "Środa XV tygodnia"} pdf, err := ReadingsPDF("2026-07-22", info, sampleSecs(), "vul", "new", "en") if err != nil { t.Fatal(err) } if len(pdf) < 1000 || !bytes.HasPrefix(pdf, []byte("%PDF")) { t.Errorf("bad pdf len=%d", len(pdf)) } }