22917c0068
Deploy / deploy (push) Successful in 1m6s
Continues the full-year sanctoral import: the Most Precious Blood of Our Lord (Duplex I Classis, full proper office, elevated by Pius XI for the 1933 Redemption jubilee), the Visitation of the BVM (Duplex II Classis, full proper office), St. Leo II, St. Anthony Mary Zaccaria, the Octave Day of Ss. Peter and Paul (own real content, not a bare continuation), Ss. Cyril and Methodius, St. Elizabeth of Portugal, St. Henry, Our Lady of Mount Carmel, St. Vincent de Paul, and St. Ignatius of Loyola. Also fixes a real pre-existing bug surfaced while authoring St. Leo II: an earlier June sanctoral pull had mapped him to "06-28" (his own vita text mentions his burial "upon the 28th day of June," but his actual liturgical feast, per the reference engine's Sancti/07-03.txt, is July 3) with no saints/st-leo-ii.yml ever authored for it -- a wrong-date stub, same class of artifact as the pre-existing St. Apollinaris wrong-date bug already documented in july-sanctoral.test.ts. Removed the stale June 28 entry now that he's correctly authored on July 3. Two day-label tests pinned to Trinity-Sunday-relative dates that now collide with new fixed feasts (Jul 6: Octave Day of Ss. Peter and Paul) were moved to collision-free years/dates, and the July stub test covering "pure octave-continuation days" was updated to a date (July 4) that's still genuinely unmapped, since most of that range turned out to have real content after all. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
60 lines
2.7 KiB
TypeScript
60 lines
2.7 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import { resolveDay } from '../../src/calendar';
|
|
import { getDayCollect } from '../../src/hours/resolve-common';
|
|
|
|
// Clean per-annum years for these dates (no Sunday collision) — see
|
|
// data/calendar/saints/*.yml for per-saint source detail.
|
|
describe('July sanctoral pull (first pass)', () => {
|
|
it('St. James the Greater wins outright at Duplex II. classis with a real proper collect, beating a genuinely unwinnable stub', () => {
|
|
const day = resolveDay('2028-07-25');
|
|
expect(day.winner).toEqual({
|
|
kind: 'sanctoral',
|
|
id: 'st-james-the-greater',
|
|
name: 'St. James the Greater, Apostle',
|
|
rank: 'duplex-2-classis',
|
|
});
|
|
expect(day.commemorations).toEqual([
|
|
{ kind: 'sanctoral', id: 'st-christopher', name: 'St. Christopher, Martyr', rank: 'simplex' },
|
|
]);
|
|
expect(getDayCollect(day).status.en).toBe('verified');
|
|
});
|
|
|
|
it('an earlier live-query pass mis-recorded St. Apollinaris under the wrong date (a transfer artifact) — his real date is the 23rd', () => {
|
|
const day = resolveDay('2026-07-23'); // a clean year, no Sunday collision
|
|
expect(day.winner).toEqual({
|
|
kind: 'sanctoral',
|
|
id: 'st-apollinaris',
|
|
name: 'St. Apollinaris, Bishop and Martyr',
|
|
rank: 'semiduplex',
|
|
});
|
|
expect(day.commemorations).toEqual([
|
|
{ kind: 'sanctoral', id: 'st-liborius', name: 'St. Liborius, Bishop and Confessor', rank: 'simplex' },
|
|
]);
|
|
});
|
|
|
|
it('the Vigil of St. James resolves alongside its own commemorated saint, distinct from St. James Day itself', () => {
|
|
const day = resolveDay('2028-07-24');
|
|
expect(day.winner.kind).toBe('sanctoral');
|
|
// 2028's Jul 23 is a Sunday, so St. Apollinaris transfers forward into
|
|
// this day and wins the collision against the Vigil/St. Christina —
|
|
// real transfer+collision interaction, not a data error.
|
|
expect(day.commemorations.map((c) => (c.kind === 'sanctoral' ? c.id : null)).sort()).toEqual([
|
|
'st-christina',
|
|
'vigil-of-st-james',
|
|
]);
|
|
});
|
|
|
|
it('pure octave-continuation days with no named saint at all are excluded entirely', () => {
|
|
// 07-01 through 07-08 mostly turned out to have real independent
|
|
// content after all (see vu-sanctoral-sweep-progress memory) --
|
|
// Most Precious Blood, the Visitation, St. Leo II, St. Anthony Mary
|
|
// Zaccaria, the Octave Day of Ss. Peter and Paul itself, Ss. Cyril
|
|
// and Methodius, and St. Elizabeth of Portugal are all now mapped.
|
|
// 07-04 and 07-09, within those same two octaves, genuinely have no
|
|
// independent content in the reference engine and remain excluded.
|
|
const day = resolveDay('2028-07-04');
|
|
expect(day.winner.kind).toBe('temporal');
|
|
expect(day.commemorations).toEqual([]);
|
|
});
|
|
});
|