Show a commemorated Sunday's name in the day label

collectCommemorations dropped the plain temporal commemoration name
unconditionally whenever anything else won the day, treating a
commemorated Sunday the same as a commemorated ferial weekday. But a
Sunday isn't "just an ordinary weekday" the way a ferial Tuesday is --
it's real information a reader can't infer from the winner+rank alone,
and it's exactly why a bare commemoration collect (now a full bundle,
previous commit) is being said in the first place. Divino Afflatu
1954's own commemoration line for a comparable case (St. Joachim
winning a Sunday, Aug 16 2026) confirms this: it names the Sunday, no
octave -- restoring that instead of a 2026-09-05 change that had
over-corrected past the actual rule.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LGsATZvfnpQ81HQuoF5JuL
This commit is contained in:
2026-09-05 20:07:30 -04:00
parent 7f97934282
commit 3e7af0b0a4
2 changed files with 26 additions and 13 deletions
+14 -12
View File
@@ -185,12 +185,12 @@ describe('getDayLabel — resumed post-Epiphany Sunday (overflow years)', () =>
// commemorations.ts's `ordinary-sunday` case's plain Duplex+ threshold
// is what lets her win outright rather than being commemorated — a
// pre-existing rule, not new behavior from adding her. The displaced
// Sunday is still commemorated internally (day.commemorations), using
// the same fixed 23rd-after-Trinity ordinal, not a raw elapsed-week
// count recomputed for 1943 — but per the 2026-09-05 label rule, a
// plain temporal commemoration like this one is no longer shown in the
// label once something else already has the primary slot.
expect(getDayLabel(resolveDay('1943-11-21')).en).toBe('The Presentation of the Blessed Virgin Mary (Duplex Majus)');
// Sunday is commemorated both internally (day.commemorations) and in
// the label itself, using the same fixed 23rd-after-Trinity ordinal,
// not a raw elapsed-week count recomputed for 1943.
expect(getDayLabel(resolveDay('1943-11-21')).en).toBe(
'The Presentation of the Blessed Virgin Mary (Duplex Majus) — The 23rd Sunday after Trinity',
);
});
});
@@ -293,7 +293,7 @@ describe('getDayLabel — active octave', () => {
);
});
it('a sanctoral winner on a Sunday still leaves the Sunday commemorated internally, but neither octave it also happens to overlap -- not an octave name at all, nor the plain Sunday ordinal any more', () => {
it('a sanctoral winner on a Sunday still shows the Sunday commemorated, but neither octave it also happens to overlap', () => {
// 2026-08-16 is a Sunday genuinely within both St. Lawrence's and the
// Assumption's overlapping octave windows -- St. Joachim (Duplex II
// Class) wins outright per the ordinary-Sunday Duplex+ threshold, not
@@ -304,14 +304,16 @@ describe('getDayLabel — active octave', () => {
// Pentecost-counted number, so "11th ... after Trinity" internally) --
// no octave named at all, even though both are technically active,
// same as this app's own established `ordinary-feria`-only gate for
// octave mentions alongside a sanctoral winner. Per the 2026-09-05
// label rule, the plain Sunday commemoration itself is now also
// dropped from the label (still present in day.commemorations) once
// a sanctoral winner already has the primary slot.
// octave mentions alongside a sanctoral winner. A 2026-09-05 change
// had wrongly dropped the Sunday name from the label too (not just
// the octave) -- corrected 2026-09-05 (user: "the label for the day
// doesn't mention the sunday being commemorated"), restoring exactly
// what the reference's own commemoration line shows: the Sunday
// named, no octave.
const day = resolveDay('2026-08-16');
expect(day.weekday).toBe('sunday');
expect(getDayLabel(day).en).toBe(
'St. Joachim, Confessor, Father of the Blessed Virgin Mary (Duplex II Class)',
'St. Joachim, Confessor, Father of the Blessed Virgin Mary (Duplex II Class) — The 11th Sunday after Trinity',
);
expect(getDayLabel(day).en).not.toContain('Octave');
});