Full precedence sweep of temporal-categories.yml, two more real bugs
Deploy / deploy (push) Successful in 1m27s

Following the Ascensiontide fix, swept every remaining unverified Sunday/
feria precedence tier against the live reference engine:

- commemorations.ts's privileged-sunday rule was itself wrong: a
  duplex-majus+ candidate was given a bare commemoration instead of
  transferring, never actually verified. Live-checked the Immaculate
  Conception (transfers off Advent II) and the Annunciation (transfers
  off Palm/Easter Sunday) - confirmed correct by direct instruction.
  privileged-sunday now transfers every rank unconditionally.

- eastertide's own Sunday tier was backwards (privileged-sunday instead
  of ordinary-sunday) for the ordinary Sundays after Easter - live-
  verified twice (Finding of the Holy Cross, St. Mark both win outright).
  Easter Day itself still needs the stronger tier, now special-cased
  directly since Sundays never consult the offset table.

Six existing tests updated to reflect real, live-verified behavior - each
had the old wrong "commemorated in place" assumption baked into its
expected value. Remaining unverified entries (Vigil of Pentecost/
Christmas, Corpus Christi/Sacred Heart) documented as such rather than
silently assumed correct.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017XMSokiTD2Qc5vPP2YQu3Q
This commit is contained in:
2026-09-01 11:45:04 -04:00
parent 6b66999908
commit 4adbb71ddf
10 changed files with 190 additions and 63 deletions
+12 -10
View File
@@ -565,18 +565,20 @@ describe('resolveOrdo("lauds", ...)', () => {
});
it('resolves both the winners collect and a commemorated saints collect on a day with a real commemoration', () => {
// 2025-11-30: Advent I (the winner) with St. Andrew, Duplex II. classis,
// commemorated alongside it (see tests/calendar/day-label.test.ts) --
// he has only a bare collect authored (no st-andrew-commemoration.yml
// Ant+V/R bundle yet), so this renders as a labeled 'preces' block
// (see resolve-common.ts's sanctoralCommemorationPart), not a second
// unlabeled 'prayer' the way it used to.
const ordo = resolveOrdo('lauds', '2025-11-30');
// 2029-01-14: post-Epiphany II (the winner, `ordinary-sunday`) with
// St. Felix Presbyter, Simplex, commemorated alongside it — live-
// verified 2026-09-01. (Not 2025-11-30/St. Andrew as this test used
// to: a privileged Sunday transfers *everything*, no rank exception
// — Andrew doesn't get a bare commemoration there at all, see
// tests/calendar/day-label.test.ts. `ordinary-sunday`'s own Simplex
// branch is the real case that still commemorates a saint in place.)
const ordo = resolveOrdo('lauds', '2029-01-14');
const collects = ordo.parts.filter((p) => p.kind === 'prayer');
expect(collects.length).toBe(1);
const andrewCommemoration = ordo.parts.find((p) => p.kind === 'preces' && p.label?.includes('Andrew'));
expect(andrewCommemoration?.kind === 'preces' ? andrewCommemoration.text.text.en : undefined).toContain(
'Andrew',
const felixCommemoration = ordo.parts.find((p) => p.kind === 'preces' && p.label?.includes('Felix'));
expect(felixCommemoration).toBeDefined();
expect(felixCommemoration?.kind === 'preces' ? felixCommemoration.text.text.en : undefined).toContain(
'palm tree',
);
});