Three things prompted by today's date resolving wrong: 1. St. Joseph's own Lauds suffrage was never modeled at all. Added lauds-suffrage-joseph.yml, sourced from Tridentine 1906/1910 (the reference engine's "Tridentine - 1906" version) per direct instruction -- Monastic 1617's own suffrage set has no Joseph suffrage at Lauds, so this one genuinely comes from a different track than the other four. 2. The Cross suffrage's actual gating rule, live-verified against a plain ferial win, a plain Sunday win, a low-rank saint's own win (even bare Simplex), and Marian Saturday: it shows only when the bare temporal feria itself is what's being prayed -- the opposite of "Sunday or a feast of the Lord." Expressed as `!isSundayOrFeast(day)` (the same ferial/festive split Prime's capitulum already uses) plus one more exclusion for a named temporal identity like Marian Saturday, which isn't Sunday or a sanctoral win either but still isn't a bare ferial office. 3. The BVM suffrage is correctly dropped on Marian Saturday (unchanged behavior, just now understood and commented correctly): it's specific to a day whose own office is already Marian, confirmed via the same live source, not a guess. Also models St. Clare (Aug 12, Simplex under Monastic 1617) and surfaces active octaves in getDayLabel, since today's date was resolving as a plain ferial day instead of showing St. Lawrence's octave with St. Clare commemorated. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -187,18 +187,32 @@ describe('resolveOrdo("lauds", ...)', () => {
|
||||
expect(collects.length).toBe(1);
|
||||
});
|
||||
|
||||
it('includes all four Tridentine suffrages, in order, on an ordinary day', () => {
|
||||
it('includes all five suffrages, in order, on an ordinary ferial day -- Cross from Tridentine 1906/1910, the other four from Monastic 1617', () => {
|
||||
const ordo = resolveOrdo('lauds', FERIAL_TUESDAY);
|
||||
const labels = ordo.parts.filter((p) => p.kind === 'preces' && p.label).map((p) => (p.kind === 'preces' ? p.label : undefined));
|
||||
expect(labels).toEqual([
|
||||
'Of the Holy Cross',
|
||||
'Of the Blessed Virgin Mary',
|
||||
'Of St. Joseph',
|
||||
'Of the Holy Apostles Peter and Paul',
|
||||
'For Peace',
|
||||
'Salve Regina',
|
||||
]);
|
||||
});
|
||||
|
||||
it('drops "Of the Holy Cross" -- not a bare ferial office -- on a plain Sunday and on a low-rank saint\'s own winning day, unlike an ordinary feria', () => {
|
||||
// St. Clare (Simplex) doesn't win outright (Lawrence's octave keeps
|
||||
// her to a commemoration -- see calendar/index.ts's applyOctaves), so
|
||||
// use St. Lawrence's own vigil day instead, or just check a Sunday.
|
||||
const sunday = resolveOrdo('lauds', '2026-06-28'); // a plain temporal Sunday, nothing else contesting
|
||||
const sundayLabels = sunday.parts
|
||||
.filter((p) => p.kind === 'preces' && p.label)
|
||||
.map((p) => (p.kind === 'preces' ? p.label : undefined));
|
||||
expect(sundayLabels).not.toContain('Of the Holy Cross');
|
||||
expect(sundayLabels).toContain('Of the Blessed Virgin Mary');
|
||||
expect(sundayLabels).toContain('Of St. Joseph');
|
||||
});
|
||||
|
||||
it('omits the suffrages on a Double-or-higher feast', () => {
|
||||
const ordo = resolveOrdo('lauds', '2026-08-10'); // St. Lawrence, Duplex II. classis
|
||||
const crossSuffrage = ordo.parts.find((p) => p.kind === 'preces' && p.label === 'Of the Holy Cross');
|
||||
|
||||
Reference in New Issue
Block a user