Fix ordinary-Sunday precedence and unify getDayLabel's commemoration rendering
Two related fixes surfaced while chasing why St. Gregory Thaumaturgus appeared to be misdated on Nov 18: - calendar/commemorations.ts's `ordinary-sunday` case was transferring a Semiduplex (or lower) saint off the Sunday instead of commemorating it in place — an earlier, unverified guess. Live-verified against both Tridentine 1906 and Divino Afflatu 1954 (St. Gregory Thaumaturgus, St. Clement, St. Apollinaris, St. Thomas Becket, all real cases): the saint stays and is commemorated on the Sunday itself, same as Simplex, never pushed to the next open day. This is what was actually moving Gregory onto Nov 18 — not a data error. `applyChristmasOctaveSunday`'s own Dec 26-29 special case needed a matching adjustment (per its own documented intent, the displaced saint there is deliberately *not* commemorated in place, since he reappears in full on Dec 30 instead). - getDayLabel had five branches, each hand-assembling its own filter/format logic for which commemorations to show — which is why the octave phrasing, the closing-day title, and a missing Sunday commemoration turned into three separate bugs earlier instead of one. Replaced with a single shared `collectCommemorations` used by every branch. This also exposed that the sanctoral-winner branch never showed any commemorated saint at all, and every other branch only showed the *first* one (`.find()`), silently dropping real collisions — both now show every commemorated saint, matching this app's own generous-commemoration design. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -11,7 +11,12 @@ describe('Christ the King (applyChristTheKing)', () => {
|
||||
const day = resolveDay('2026-10-25'); // last Sunday of October 2026
|
||||
expect(day.winner).toEqual({ kind: 'temporal', id: 'christ-the-king' });
|
||||
expect(day.commemorations).toContainEqual({ kind: 'temporal', id: 'post-pentecost-22' });
|
||||
expect(getDayLabel(day)).toBe('Christ the King (Duplex I Class)');
|
||||
// Live-verified (Divino Afflatu 1954): the day's own commemoration
|
||||
// line also names whichever sanctoral entry the ordinary Sunday was
|
||||
// already carrying (Ss. Chrysanthus and Daria, Simplex, per the next
|
||||
// test below) -- this app's day label now surfaces every commemorated
|
||||
// saint, not just the Sunday itself.
|
||||
expect(getDayLabel(day)).toBe('Christ the King (Duplex I Class) — Ss. Chrysanthus and Daria, Martyrs');
|
||||
});
|
||||
|
||||
it('preserves a nested commemoration: a Simplex saint already commemorated under the ordinary Sunday stays commemorated', () => {
|
||||
|
||||
Reference in New Issue
Block a user