From cb1f49117d15b9690b46f344c0d6777e558b9021 Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Thu, 23 Jul 2026 13:33:11 +0200 Subject: render: gather versions + compare + dedup --- internal/render/render_test.go | 53 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 internal/render/render_test.go (limited to 'internal/render/render_test.go') diff --git a/internal/render/render_test.go b/internal/render/render_test.go new file mode 100644 index 0000000..87f9ed2 --- /dev/null +++ b/internal/render/render_test.go @@ -0,0 +1,53 @@ +package render + +import ( + "strings" + "testing" + + "github.com/lukaszkasprzak/lectio/internal/liturgy" +) + +func TestGatherPLDedup(t *testing.T) { + sec := liturgy.Section{ + Heading: "Psalm (Ps 1)", + Paragraphs: [][]string{{"stanza one"}, {"refrain"}, {"stanza two"}, {"refrain"}}, + } + _, blocks := GatherVersion("pl", sec, "new") + n := 0 + for _, b := range blocks { + if b == "refrain" { + n++ + } + } + if n != 1 { + t.Errorf("refrain appears %d times, want 1 (deduped)", n) + } +} + +func TestGatherBible(t *testing.T) { + sec := liturgy.Section{Heading: "Ewangelia (J 20, 1. 11-18)"} + label, blocks := GatherVersion("wuj", sec, "new") + if !strings.Contains(label, "Wujek") { + t.Errorf("label = %q", label) + } + if len(blocks) == 0 || !strings.HasPrefix(blocks[0], "20:1") { + t.Errorf("first block = %q", blocks) + } +} + +func TestGatherTraditional(t *testing.T) { + sec := liturgy.Section{Citation: "Luke 7:36-50"} + _, blocks := GatherVersion("vul", sec, "traditional") + if len(blocks) == 0 || !strings.HasPrefix(blocks[0], "7:36") { + t.Errorf("first block = %q", blocks) + } +} + +func TestOfflineVersions(t *testing.T) { + got := OfflineVersions([]string{"pl", "wuj", "vul"}) + for _, v := range got { + if v == "pl" { + t.Error("pl not dropped offline") + } + } +} -- cgit v1.3