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