aboutsummaryrefslogtreecommitdiff
path: root/internal/caldata/sanctorale_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/caldata/sanctorale_test.go')
-rw-r--r--internal/caldata/sanctorale_test.go47
1 files changed, 47 insertions, 0 deletions
diff --git a/internal/caldata/sanctorale_test.go b/internal/caldata/sanctorale_test.go
new file mode 100644
index 0000000..610aa33
--- /dev/null
+++ b/internal/caldata/sanctorale_test.go
@@ -0,0 +1,47 @@
+package caldata
+
+import (
+ "os"
+ "path/filepath"
+ "testing"
+)
+
+func TestBaseSanctoraleOverride(t *testing.T) {
+ dir := t.TempDir()
+ os.WriteFile(filepath.Join(dir, "of.ini"), []byte(
+ "[layer]\nid = test-override\ntype = universal\n\n"+
+ "[test-saint]\ndate = 06-15\nrank = feast\nname.en = Test Saint\n"), 0o644)
+ SetSanctoraleDir(dir)
+ t.Cleanup(func() { SetSanctoraleDir("") })
+
+ // External file present and valid -> it REPLACES the embedded OF calendar.
+ l := Base("new")
+ if l.ID != "test-override" {
+ t.Fatalf("external of.ini not used: layer id = %q", l.ID)
+ }
+ if _, ok := l.Cels["test-saint"]; !ok || len(l.Cels) != 1 {
+ t.Fatalf("external calendar not loaded verbatim: %d cels", len(l.Cels))
+ }
+
+ // EF form has no external file here -> embedded Tridentine still used.
+ if ef := Base("old"); ef.ID == "test-override" {
+ t.Fatal("EF wrongly took the OF override")
+ }
+}
+
+func TestBaseFallsBackToEmbedded(t *testing.T) {
+ // No dir set -> embedded default.
+ SetSanctoraleDir("")
+ if l := Base("new"); l.ID != "universal" || len(l.Cels) < 100 {
+ t.Fatalf("no-override should give the embedded calendar, got id=%q n=%d", l.ID, len(l.Cels))
+ }
+
+ // A malformed external file must not break computation -> embedded fallback.
+ dir := t.TempDir()
+ os.WriteFile(filepath.Join(dir, "of.ini"), []byte("[unclosed section\n"), 0o644)
+ SetSanctoraleDir(dir)
+ t.Cleanup(func() { SetSanctoraleDir("") })
+ if l := Base("new"); l.ID != "universal" || len(l.Cels) < 100 {
+ t.Fatalf("malformed override should fall back to embedded, got id=%q n=%d", l.ID, len(l.Cels))
+ }
+}