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:
@@ -509,12 +509,23 @@ function collectCommemorations(
|
||||
// pass wrongly scoped this to "only when an Ember commemoration is
|
||||
// also present" — user, 2026-09-05: "it has nothing to do with
|
||||
// ember-ness"); this plain generic label is dropped unconditionally
|
||||
// whenever it shows up as a mere commemoration, Ember day or not.
|
||||
// whenever it shows up as a mere commemoration on an ordinary
|
||||
// ferial weekday, Ember day or not.
|
||||
//
|
||||
// A commemorated *Sunday* is the one exception (user, 2026-09-05):
|
||||
// unlike a plain ferial Tuesday, "this is also a Sunday" is real
|
||||
// information a reader can't infer from the winner+rank alone — it's
|
||||
// why the Sunday's own collect is being said at all (getDayCollects'
|
||||
// temporalCommemorationPart), and nothing else in the header hints
|
||||
// at it. Shown via the same plain, rank-free `temporalLabel` a
|
||||
// winning Sunday would use for itself.
|
||||
if (c.id !== temporalId) {
|
||||
const emberName = emberDayLabel(c.id);
|
||||
if (emberName) {
|
||||
temporal.push(emberName);
|
||||
}
|
||||
} else if (day.weekday === 'sunday') {
|
||||
temporal.push(temporalLabel(day));
|
||||
}
|
||||
} else if (opts.showOctaves && c.id !== opts.excludeOctaveId) {
|
||||
const octave = activeOctaves.find((a) => a.id === c.id);
|
||||
|
||||
@@ -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');
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user