aboutsummaryrefslogtreecommitdiff
path: root/internal/calendar/calendar_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/calendar/calendar_test.go')
-rw-r--r--internal/calendar/calendar_test.go39
1 files changed, 39 insertions, 0 deletions
diff --git a/internal/calendar/calendar_test.go b/internal/calendar/calendar_test.go
new file mode 100644
index 0000000..909f1d8
--- /dev/null
+++ b/internal/calendar/calendar_test.go
@@ -0,0 +1,39 @@
+package calendar
+
+import (
+ "testing"
+)
+
+func universalTest() Layer {
+ return Layer{ID: "universal", Type: "universal", Cels: map[string]RawCelebration{
+ "assumption": {Fields: map[string]string{
+ "date": "08-15", "rank": "solemnity", "class": "bvm", "colour": "white",
+ "name.en": "Assumption of the BVM", "reading.gospel": "Lk 1:39-56",
+ }, Variants: map[string]map[string]string{}},
+ " st-monday-optional ": {Fields: map[string]string{}, Variants: map[string]map[string]string{}},
+ }}
+}
+
+func TestComputeSolemnityBeatsFeria(t *testing.T) {
+ got := Compute(d("2025-08-15"), DefaultSelection(), []Layer{universalTest()})
+ if got.Observed.Slug != "assumption" {
+ t.Fatalf("2025-08-15 observed = %q want assumption", got.Observed.Slug)
+ }
+ if got.Colour != White || got.Observed.Rank != RankSolemnity {
+ t.Errorf("assumption colour/rank wrong: %s / %v", got.Colour, got.Observed.Rank)
+ }
+ if len(got.Observed.Masses) == 0 || got.Observed.Masses[0].Readings[0].Part != "gospel" {
+ t.Errorf("proper reading not surfaced: %+v", got.Observed.Masses)
+ }
+}
+
+func TestComputeCycles(t *testing.T) {
+ // Advent 2024 opens liturgical year 2025 → Sunday cycle C, weekday cycle I.
+ got := Compute(d("2025-01-15"), DefaultSelection(), []Layer{universalTest()})
+ if got.SundayCycle != "C" {
+ t.Errorf("2024-25 Sunday cycle = %s want C", got.SundayCycle)
+ }
+ if got.WeekdayCycle != "I" {
+ t.Errorf("2025 weekday cycle = %s want I", got.WeekdayCycle)
+ }
+}