Author Common-of-a-Martyr(-Bishop) Lauds/Vespers chapter/responsory/hymn/versicle
Deploy / deploy (push) Successful in 1m18s
Deploy / deploy (push) Successful in 1m18s
St. Zephyrinus (Aug 26, common-of-a-martyr-bishop, Simplex) claims First Vespers over St. Louis's Aug 25, but that evening was showing the plain ferial hymn instead of a real Common-of-a-Martyr hymn: no content had been authored yet for this Common category's Lauds/Vespers bundle, so resolveOfficeBundle's chapter lookup came back missing and the whole bundle fell through to the ferial default. Live-verified against Divinum Officium (Monastic Tridentinum 1617) votive=C2b: chapter Jac 1:12, Lauds hymn "Martyr Dei, qui unicum," Vespers hymn "Deus tuorum militum," shared versicle "Justus ut palma florebit." Used the votive-office view rather than a real saint's own day for the same structural reason as the earlier Confessor-Not-Bishop fix: every real Common-of-a-Martyr-Bishop saint either has proper content of his own (St. Lawrence, St. Stephen) or never reaches the rank needed to keep his own Vespers (St. Zephyrinus, St. Callistus). Cross-checked votive=C2/C2a/ C2b/C2-1 all render identical text, so the same 7 files were duplicated under the plain common-of-a-martyr id too (St. Hadrian, St. Hermes, St. Fidelis of Sigmaringen). Updates one existing Vespers test whose date (2026-03-03) turned out to also anticipate St. Lucius I's First Vespers, previously masked by this same content gap; adds two new proof tests and a TODO.md entry. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014axryJBrRswYh2niA7WCUc
This commit is contained in:
@@ -198,14 +198,42 @@ describe('resolveOrdo("vespers", ...)', () => {
|
||||
});
|
||||
|
||||
it("renders Lent's seasonal office", () => {
|
||||
// 2026-03-03 is a Tuesday in Lent, before Passiontide.
|
||||
const ordo = resolveOrdo('vespers', '2026-03-03');
|
||||
// 2026-03-02 is a Monday in Lent, before Passiontide -- deliberately
|
||||
// not 03-03, whose own evening (as of the Common-of-a-Martyr-Bishop
|
||||
// office-bundle authoring below) now correctly anticipates St. Lucius
|
||||
// I's First Vespers on 03-04 instead of falling through to this
|
||||
// seasonal default; 03-02's own evening has no adjacent sanctoral
|
||||
// saint at all, so it stays a clean plain-Lent proof.
|
||||
const ordo = resolveOrdo('vespers', '2026-03-02');
|
||||
const chapter = ordo.parts.find((p) => p.kind === 'chapter');
|
||||
expect(chapter?.kind === 'chapter' ? chapter.text.citation?.en : undefined).toBe('Joel 2:17');
|
||||
const hymn = ordo.parts.find((p) => p.kind === 'hymn');
|
||||
expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Audi, benígne Cónditor');
|
||||
});
|
||||
|
||||
it("uses Common-of-a-Martyr-Bishop's real office bundle, not the ferial default, for a Simplex saint's First Vespers", () => {
|
||||
// St. Zephyrinus (Aug 26, Simplex, common-of-a-martyr-bishop) claims
|
||||
// First Vespers over St. Louis's Aug 25 -- see calendar/vespers.ts's
|
||||
// hasFirstVespers comments. Before this Common's Lauds/Vespers bundle
|
||||
// was authored, the missing chapter/hymn made the whole bundle
|
||||
// resolve to undefined, silently falling through to the plain ferial
|
||||
// default -- live-verified against Divinum Officium's `votive=C2b`
|
||||
// view instead of a real saint's own day, same reasoning as Common-
|
||||
// of-a-Confessor-Not-Bishop's own proof (see vespers-hymn-common-of-
|
||||
// a-martyr-bishop.yml's header).
|
||||
const ordo = resolveOrdo('vespers', '2026-08-25');
|
||||
const chapter = ordo.parts.find((p) => p.kind === 'chapter');
|
||||
expect(chapter?.kind === 'chapter' ? chapter.text.citation?.en : undefined).toBe('Jas 1:12');
|
||||
const hymn = ordo.parts.find((p) => p.kind === 'hymn');
|
||||
expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Deus tuórum mílitum');
|
||||
for (const part of ordo.parts) {
|
||||
if (part.kind === 'chapter' || part.kind === 'responsory' || part.kind === 'hymn' || part.kind === 'versicle') {
|
||||
expect(part.text.status.la).toBe('verified');
|
||||
expect(part.text.status.en).toBe('verified');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
it("renders Passiontide's seasonal office, with the Gloria Patri omitted from the responsory", () => {
|
||||
// 2026-03-25 is a Wednesday in Passiontide (Passion Sunday 2026-03-22
|
||||
// through Holy Saturday 2026-04-04).
|
||||
|
||||
Reference in New Issue
Block a user