Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a6e4bb15b1 | |||
| d4ec104d59 |
@@ -2,14 +2,11 @@
|
||||
# kalendar check (2025-08-29) -- winner outright, Duplex, over the stub
|
||||
# St. Sabina (see st-sabina.yml). About St. John the Baptist's beheading,
|
||||
# not a feast of the Lord/BVM, so kept in scope like his Nativity in June.
|
||||
# "common-of-an-apostle" is a loose fit (he isn't one) but the closest
|
||||
# existing category to "a major male saint honored with his own high
|
||||
# feast" -- same judgment call as nativity-of-st-john-the-baptist.yml.
|
||||
# Own proper collect and antiphon.
|
||||
id: decollation-of-st-john-baptist
|
||||
name: "The Beheading of St. John the Baptist"
|
||||
rank: duplex
|
||||
common: common-of-an-apostle
|
||||
common: common-of-a-martyr
|
||||
propers: "decollation-of-st-john-baptist"
|
||||
# P/T/S/N: no [Ant Prima]/etc of its own in the source (08-29.txt) --
|
||||
# [Rule]/[Rank] point to Commune/C2a instead, the same C-number family
|
||||
|
||||
@@ -3,10 +3,19 @@
|
||||
# classis, the highest rank pulled in this set. About St. John the
|
||||
# Baptist's own nativity, not a feast of the Lord/BVM, so kept in the
|
||||
# sanctoral store like the Conversion of St. Paul/Chair-of-Peter feasts
|
||||
# despite the very high rank. Own proper collect and antiphon. "common-
|
||||
# of-an-apostle" is a loose fit (he isn't one) but the closest existing
|
||||
# category to "a major male saint honored with his own high feast" --
|
||||
# worth reconsidering if a more precise category becomes worth adding.
|
||||
# despite the very high rank. Own proper collect and antiphon.
|
||||
#
|
||||
# `common: common-of-an-apostle` is a placeholder, not a liturgical
|
||||
# claim -- the reference engine assigns this feast no Commune at all
|
||||
# (every [Rule] line in Sancti/06-24.txt and SanctiM/06-24.txt points to
|
||||
# proper text, never a Commune category), so no better-fitting id exists
|
||||
# either. Now verified-inert: every part this field could ever be
|
||||
# consulted for (Matins invitatory/hymn/Nocturn psalmody, Vespers
|
||||
# psalmody, the Lauds/Vespers bundle, Benedictus antiphon, collect, all
|
||||
# four minor hours) has its own real proper text authored, so this field
|
||||
# is never actually reached by any resolver (see
|
||||
# data/hours/matins-psalmody-overrides/saints/nativity-of-st-john-the-baptist.yml's
|
||||
# own comment).
|
||||
id: nativity-of-st-john-the-baptist
|
||||
name: "The Nativity of St. John the Baptist"
|
||||
rank: duplex-1-classis
|
||||
|
||||
@@ -0,0 +1,104 @@
|
||||
# Live-verified against Divinum Officium (Monastic Tridentinum 1617,
|
||||
# command=prayMatutinum, 2026-06-24). This feast's reference file
|
||||
# (Sancti/06-24.txt) says "Psalmi Dominica" (use Sunday's own psalm
|
||||
# pool), and the live render confirms it: Nocturn 1's psalm numbers
|
||||
# (1,2,4,5,8,10) and Nocturn 2's (14,20,33,63,64,91) are St. Lawrence's
|
||||
# own psalm sets exactly (see st-lawrence.yml's own note that this pool
|
||||
# is shared, not unique to one saint) -- only the antiphon text is
|
||||
# proper to this feast. Nocturn 3 uses the same three canticles already
|
||||
# authored for St. Lawrence (Eccli 14:22;15:3-4;15:6 / Jer 17:7-8 /
|
||||
# Eccli 31:8-11 -- data/scripture/{sir-14,sir-15,jer-17,sir-31}.yml,
|
||||
# reused verbatim, not re-transcribed), but under a single proper
|
||||
# antiphon repeated across all three canticles (the live render shows
|
||||
# one antiphon, not three), unlike Lawrence's own distinct nocturn-3
|
||||
# antiphon. No `category` cross-reference here (unlike st-lawrence.yml's
|
||||
# own `common-of-a-martyr`) since this feast draws on no Commune at all
|
||||
# -- see nativity-of-st-john-the-baptist.yml's own `common` field comment
|
||||
# in data/calendar/saints/.
|
||||
id: nativity-of-st-john-the-baptist
|
||||
nocturn1:
|
||||
groups:
|
||||
- psalms: [1]
|
||||
antiphon:
|
||||
la: "Priúsquam te formárem * in útero, novi te; et ántequam progrederéris, sanctificávi te."
|
||||
en: "Before I formed thee in the belly, I knew thee, * and before thou camest forth out of the womb, I sanctified thee."
|
||||
- psalms: [2]
|
||||
antiphon:
|
||||
la: "Ad ómnia quæ mittam te, * dicit Dóminus, ibis: ne tímeas, et quæ mandávero tibi, loquéris ad eos."
|
||||
en: "The Lord said unto me: Thou shalt go to all that I shall send thee; * fear not; and whatsoever I command thee, thou shalt speak."
|
||||
- psalms: [4]
|
||||
antiphon:
|
||||
la: "Ne tímeas * a fácie eórum, quia ego tecum sum, dicit Dóminus."
|
||||
en: "Be not afraid of their faces; * for I am with thee, saith the Lord."
|
||||
- psalms: [5]
|
||||
antiphon:
|
||||
la: "Misit Dóminus * manum suam, et tétigit os meum, et prophétam in géntibus dedit me Dóminus."
|
||||
en: "The Lord put forth His hand, and touched my mouth, * and the Lord ordained me a Prophet unto the nations."
|
||||
- psalms: [8]
|
||||
antiphon:
|
||||
la: "Ecce dedi verba mea * in ore tuo: ecce constítui te super gentes et regna."
|
||||
en: "Behold, I have put My words in thy mouth; * see, I have this day set thee over the nations, and over the kingdoms."
|
||||
- psalms: [10]
|
||||
antiphon:
|
||||
la: "Dóminus * ab útero vocávit me, de ventre matris meæ recordátus est nóminis mei."
|
||||
en: "The Lord hath called me from the womb; * from the bowels of my mother hath He made mention of my name."
|
||||
versicle:
|
||||
v:
|
||||
la: "Fuit homo missus a Deo."
|
||||
en: "There was a man sent from God."
|
||||
r:
|
||||
la: "Cui nomen erat Joánnes."
|
||||
en: "Whose name was John."
|
||||
nocturn2:
|
||||
groups:
|
||||
- psalms: [14]
|
||||
antiphon:
|
||||
la: "Pósuit os meum * Dóminus quasi gládium acútum: sub umbra manus suæ protéxit me."
|
||||
en: "The Lord hath made my mouth * like a sharp sword; in the shadow of His hand hath He hid me."
|
||||
- psalms: [20]
|
||||
antiphon:
|
||||
la: "Formans me * ex útero servum sibi Dóminus, dicit: Dedi te in lucem géntium, ut sis salus mea usque ad extrémum terræ."
|
||||
en: "And now, saith the Lord That formed me from the womb * to be His servant: I will also give thee for a light to the Gentiles, that thou mayest be My salvation unto the end of the earth."
|
||||
- psalms: [33]
|
||||
antiphon:
|
||||
la: "Reges vidébunt, * et consúrgent príncipes et adorábunt Dóminum Deum tuum, qui elégit te."
|
||||
en: "Kings shall see, and princes shall arise, and worship the Lord thy God, Who hath chosen thee."
|
||||
- psalms: [63]
|
||||
antiphon:
|
||||
la: "Nazarǽus * vocábitur puer iste: vinum et síceram non bibet, et omne immúndum non manducábit ex útero matris suæ."
|
||||
en: "The child shall be called a Nazarite. He shall drink neither wine nor strong drink, neither shall he eat any unclean thing, even from his mother's womb."
|
||||
- psalms: [64]
|
||||
antiphon:
|
||||
la: "Erit enim * magnus coram Dómino: nam et manus ejus cum ipso est."
|
||||
en: "For he shall be great before the Lord: for his hand is with him."
|
||||
- psalms: [91]
|
||||
antiphon:
|
||||
la: "Ipse præíbit * ante illum in spíritu et virtúte Elíæ paráre Dómino plebem perféctam."
|
||||
en: "He shall go before him in the spirit and power of Elias, to make ready a people prepared for the Lord."
|
||||
versicle:
|
||||
v:
|
||||
la: "Inter natos mulíerum non surréxit major."
|
||||
en: "Among them that are born of women there hath not risen a greater."
|
||||
r:
|
||||
la: "Joánne Baptísta."
|
||||
en: "Than John the Baptist."
|
||||
nocturn3:
|
||||
antiphon:
|
||||
la: "Descéndit * angelus Dómini ad Zacharíam, dicens: Accípe púerum in senectúte tua, et habébit nomen Joánnes Baptísta."
|
||||
en: "The angel of the Lord descended to Zacharias, saying: Accept this child in your old age, and his name will be John the Baptist."
|
||||
canticles:
|
||||
- refs:
|
||||
- { book: sir, chapter: 14, verses: "22" }
|
||||
- { book: sir, chapter: 15, verses: "3-4" }
|
||||
- { book: sir, chapter: 15, verses: "6" }
|
||||
- refs:
|
||||
- { book: jer, chapter: 17, verses: "7-8" }
|
||||
- refs:
|
||||
- { book: sir, chapter: 31, verses: "8-11" }
|
||||
versicle:
|
||||
v:
|
||||
la: "Elísabeth Zacharíæ magnum virum génuit."
|
||||
en: "Elizabeth, the wife of Zacharias, was the mother of a mighty man."
|
||||
r:
|
||||
la: "Joánnem Baptístam, præcursórem Dómini."
|
||||
en: "Even of John the Baptist, the Fore-runner of the Lord."
|
||||
@@ -0,0 +1,27 @@
|
||||
# Live-verified against Divinum Officium (Monastic Tridentinum 1617,
|
||||
# command=prayVespera, 2026-06-24). Second Vespers uses only 4 psalms
|
||||
# (109/110/111/112), not the 5 slots a naive reading of Sancti/06-24.txt's
|
||||
# own raw `[Ant Vespera]` (5 antiphons) would suggest -- Monastic Sunday
|
||||
# Vespers has one psalm slot fewer than secular, confirmed by the live
|
||||
# render, not just read off the static file (whose 5th listed antiphon,
|
||||
# "Nazarǽus vocábitur", isn't used here at all; the engine's own 4th slot
|
||||
# antiphon is instead "Tu, puer, Prophéta Altíssimi vocáberis", reused
|
||||
# from `[Ant Laudes]`'s own 5th entry).
|
||||
id: nativity-of-st-john-the-baptist
|
||||
groups:
|
||||
- psalms: [109]
|
||||
antiphon:
|
||||
la: "Elísabeth Zacharíæ * magnum virum génuit, Joánnem Baptístam, præcursórem Dómini."
|
||||
en: "Elizabeth, the wife of Zacharias, * was the mother of a mighty man, even of John the Baptist, the Fore-runner of the Lord."
|
||||
- psalms: [110]
|
||||
antiphon:
|
||||
la: "Innuébant patri ejus * quem vellet vocári eum: et scripsit dicens: Joánnes est nomen ejus."
|
||||
en: "They made signs to his father * how he would have him called; and he asked for a writing-table, and wrote, saying: His name is John."
|
||||
- psalms: [111]
|
||||
antiphon:
|
||||
la: "Joánnes vocábitur * nomen ejus: et in nativitáte ejus multi gaudébunt."
|
||||
en: "Thou shalt call his name John; * and many shall rejoice at his birth."
|
||||
- psalms: [112]
|
||||
antiphon:
|
||||
la: "Tu, puer, * Prophéta Altíssimi vocáberis; præíbis ante Dóminum paráre vias ejus."
|
||||
en: "Thou, child, shalt be called the Prophet of the Highest; * for thou shalt go before the face of the Lord, to prepare His ways."
|
||||
@@ -0,0 +1,65 @@
|
||||
# Verified against Divinum Officium — Sancti/06-24.txt's own [Hymnus
|
||||
# Matutinum], with the Monastic doxology substitution from [HymnusM
|
||||
# Matutinum] applied (s/posses/saltem/ s/Crímine linguæ/Flámine posses/
|
||||
# s/durum/hirtum/ s/Sit decus/Glória/ s/semper/alme/ s/virtus/semper/
|
||||
# s/Témporis ævo/Témpore sæcli/ — same substitution set already applied
|
||||
# for vespers-hymn-nativity-of-st-john-the-baptist.yml, whose doxology
|
||||
# it exactly matches). English is the reference's own translation,
|
||||
# already in the Monastic doxology form.
|
||||
id: matins-hymn-nativity-of-st-john-the-baptist
|
||||
text:
|
||||
la: |
|
||||
Antra desérti téneris sub annis,
|
||||
Cívium turmas fúgiens, petísti,
|
||||
Ne levi saltem maculáre vitam
|
||||
Flámine posses.
|
||||
|
||||
Prǽbuit hirtum tégumen camélus
|
||||
Artubus sacris, stróphium bidéntes;
|
||||
Cui latex haustum, sociáta pastum
|
||||
Mella locústis.
|
||||
|
||||
Céteri tantum cecinére Vatum
|
||||
Corde præságo jubar affutúrum;
|
||||
Tu quidem mundi scelus auferéntem
|
||||
Indice prodis.
|
||||
|
||||
Non fuit vasti spátium per orbis
|
||||
Sánctior quisquam génitus Joánne,
|
||||
Qui nefas sæcli méruit lavántem
|
||||
Tíngere lymphis.
|
||||
|
||||
Glória Patri, genitǽque Proli,
|
||||
Et tibi, compar utriúsque semper,
|
||||
Spíritus alme, Deus unus omni
|
||||
Témpore sæcli.
|
||||
Amen.
|
||||
en: |
|
||||
Thou, in thy childhood, to the desert caverns
|
||||
Fleddest for refuge from the cities' turmoil,
|
||||
Where the world's slander might not dim thy lustre,
|
||||
Lonely abiding.
|
||||
|
||||
Camel's hair raiment clothed thy saintly members;
|
||||
Leathern the girdle which thy loins encircled;
|
||||
Locusts and honey, with the fountain-water,
|
||||
Daily sustained thee.
|
||||
|
||||
Oft in past ages, seers with hearts expectant
|
||||
Sang the far-distant advent of the day-star;
|
||||
thine was the glory, as the world's Redeemer
|
||||
First to proclaim him.
|
||||
|
||||
Far as the wide world reacheth, born of woman,
|
||||
Holier was there none than John the Baptist;
|
||||
Meetly in water laving him who cleanseth
|
||||
Man from pollution.
|
||||
|
||||
Praise to the Father, to the Son begotten,
|
||||
And to the Spirit, equal power possessing,
|
||||
One God whose glory, through the lapse of ages,
|
||||
Ever resoundeth.
|
||||
Amen.
|
||||
status:
|
||||
la: verified
|
||||
en: verified
|
||||
@@ -0,0 +1,12 @@
|
||||
# Verified against Divinum Officium — Sancti/06-24.txt's own [Invit]
|
||||
# (SanctiM/06-24.txt has no override, so Monastic inherits this secular
|
||||
# text). Proper to this feast, not a Commune text: "Regem Præcursóris
|
||||
# Dóminum" (the Lord, King of His Forerunner), distinct from both
|
||||
# common-of-an-apostle's and common-of-a-martyr's invitatory antiphons.
|
||||
id: matins-invitatory-nativity-of-st-john-the-baptist
|
||||
text:
|
||||
la: "Regem Præcursóris Dóminum, * Veníte, adorémus."
|
||||
en: "The Lord, He is the King of His Fore-runner; * O come, let us worship Him."
|
||||
status:
|
||||
la: verified
|
||||
en: verified
|
||||
@@ -7,13 +7,18 @@
|
||||
# web/www/horas/Latin/Sancti/08-29.txt, English/Sancti/08-29.txt.
|
||||
#
|
||||
# Nocturn 2: Lectio4-6 (St. Ambrose's treatise On Virgins) combined
|
||||
# into one reading, one continuous excerpt.
|
||||
# into one reading, one continuous excerpt. Its closing responsory
|
||||
# ([Responsory6], marked &Gloria) is genuine proper text, not a
|
||||
# Commune reference, so it's authored below.
|
||||
# Nocturn 3: Lectio7's Gospel citation (Mark 6:17-29) is a bare
|
||||
# incipit ("Et réliqua") with no full pericope text given, so — per
|
||||
# the pre-1955 pass's convention of not transcribing bare incipits —
|
||||
# only the homily portion is authored (not marked isGospel), combined
|
||||
# with Lectio8 as one continuous excerpt of St. Augustine's sermon.
|
||||
# No responsory given for either reading.
|
||||
# [Responsory4], [Responsory7], [Responsory8] are all genuine Commune
|
||||
# references (@Commune/C2a:Responsory2/5/6 -- Common of a Martyr, per
|
||||
# decollation-of-st-john-baptist.yml's own `common` field), so Nocturn
|
||||
# 3 correctly has no proper responsory of its own.
|
||||
id: decollation-of-st-john-baptist
|
||||
readings:
|
||||
- nocturn: 2
|
||||
@@ -82,6 +87,9 @@ readings:
|
||||
silent now, can repeat no more the denunciation which thou couldest not bear to hear, and
|
||||
still thou art afraid of it.
|
||||
status: { la: verified, en: verified }
|
||||
responsory:
|
||||
la: "R. Honéstum fecit illum Dóminus, et custodívit eum ab inimícis, et a seductóribus tutávit illum: * Et dedit illi claritátem ætérnam.\nV. Descendítque cum illo in fóveam, et in vínculis non derelíquit eum.\nR. Et dedit illi claritátem ætérnam."
|
||||
en: "R. The Lord made him honourable, and kept him from his enemies, and defended him from seducers: * and gave him everlasting glory.\nV. He went down with him into the pit, and left him not in bonds.\nR. And gave him everlasting glory."
|
||||
|
||||
- nocturn: 3
|
||||
isGospel: false
|
||||
|
||||
@@ -13,7 +13,13 @@
|
||||
# per the pre-1955 pass's convention of not transcribing bare incipits
|
||||
# — only the homily portion is authored (not marked isGospel),
|
||||
# combined with Lectio8-9 as one continuous excerpt of St. Ambrose's
|
||||
# commentary. No responsory given for either reading.
|
||||
# commentary.
|
||||
#
|
||||
# Both reading entries below carry their closing proper responsory:
|
||||
# Nocturn 2's is [Responsory6] (the last of Lectio4-6); Nocturn 3's is
|
||||
# [Responsory8] (the last of Lectio7-9 that has one — [Responsory9]
|
||||
# doesn't exist, since Te Deum is sung after Lectio9 at this
|
||||
# Duplex-1-classis rank).
|
||||
id: nativity-of-st-john-the-baptist
|
||||
readings:
|
||||
- nocturn: 2
|
||||
@@ -85,6 +91,9 @@ readings:
|
||||
Lord. And this is why John said of himself: I am the voice of one crying in the
|
||||
wilderness, Make straight the way of the Lord.
|
||||
status: { la: verified, en: verified }
|
||||
responsory:
|
||||
la: "R. Innuébant patri ejus quem vellet vocári eum: et póstulans pugillárem, scripsit dicens: * Joánnes est nomen ejus.\nV. Apértum est os Zacharíæ, et prophetávit dicens.\nR. Joánnes est nomen ejus."
|
||||
en: "R. They made signs to his father, how he would have him called; and he asked for a writing-table, and wrote, saying: * His name is John.\nV. The mouth of Zacharias was opened, and he prophesied, saying:\nR. His name is John."
|
||||
|
||||
- nocturn: 3
|
||||
isGospel: false
|
||||
@@ -151,3 +160,6 @@ readings:
|
||||
had not heard, since it had been revealed to her by the same Holy Ghost Who had commanded
|
||||
the Angel to tell it.
|
||||
status: { la: verified, en: verified }
|
||||
responsory:
|
||||
la: "R. Gábriel Angelus appáruit Zacharíæ dicens: Nascétur tibi fílius, nomen ejus Joánnes vocábitur: * Et multi in nativitáte ejus gaudébunt.\nV. Erit enim magnus coram Dómino, vinum et síceram non bibet.\nR. Et multi in nativitáte ejus gaudébunt."
|
||||
en: "R. The Angel Gabriel appeared unto Zacharias, and said thy wife Elizabeth shall bear thee a son, and thou shalt call his name John; * And many shall rejoice at his birth.\nV. For he shall be great in the sight of the Lord, and shall drink neither wine nor strong drink.\nR. And many shall rejoice at his birth."
|
||||
|
||||
@@ -596,6 +596,16 @@ describe('resolveOrdo("matins", ...) invitatory antiphon doubling by rank', () =
|
||||
expect(openingAntiphonLatin('2026-08-24')).toContain('Regem Apostolórum Dóminum, * Veníte');
|
||||
});
|
||||
|
||||
it("the Beheading of St. John the Baptist (2026-08-29, common corrected from apostle to martyr) opens with the martyr Common's invitatory antiphon, not the apostle one", () => {
|
||||
// Regression test: decollation-of-st-john-baptist.yml's `common` field
|
||||
// used to be common-of-an-apostle (a mistaken placeholder -- he isn't
|
||||
// an apostle), which leaked into the Matins invitatory. Corrected to
|
||||
// common-of-a-martyr, matching the file's own already-correct
|
||||
// `minorHoursCommon`.
|
||||
expect(openingAntiphonLatin('2026-08-29')).toContain('Regem Mártyrum Dóminum, * Veníte');
|
||||
expect(openingAntiphonLatin('2026-08-29')).not.toContain('Regem Apostolórum');
|
||||
});
|
||||
|
||||
it('a plain ferial day opens with the incipit only', () => {
|
||||
expect(openingAntiphonLatin(FERIAL_DATE)).not.toContain('Exsultémus');
|
||||
});
|
||||
@@ -695,3 +705,37 @@ describe('resolveOrdo("matins", ...) remaining Common categories\' Matins hymns
|
||||
expect(hymnLatin('2026-08-06')).toContain('Quicúmque Christum quǽritis');
|
||||
});
|
||||
});
|
||||
|
||||
describe('resolveOrdo("matins", ...) Nativity of St. John the Baptist (2026-06-24) real proper content', () => {
|
||||
// Regression test: nativity-of-st-john-the-baptist.yml's `common`
|
||||
// field (common-of-an-apostle) used to leak into the invitatory, hymn,
|
||||
// and Nocturn psalmody since no proper override existed for any of
|
||||
// them. The reference engine assigns this feast no Commune at all, so
|
||||
// real proper text was authored for each instead of swapping the
|
||||
// Common id.
|
||||
const ordo = resolveOrdo('matins', '2026-06-24');
|
||||
|
||||
it("resolves the invitatory antiphon to its own proper text, not the apostle Common's", () => {
|
||||
const antiphonParts = ordo.parts.filter((p) => p.kind === 'antiphon') as { text: { text: Record<string, string> } }[];
|
||||
const invitatoryLatin = antiphonParts[0]?.text.text.la;
|
||||
expect(invitatoryLatin).toContain('Regem Præcursóris Dóminum');
|
||||
expect(invitatoryLatin).not.toContain('Regem Apostolórum');
|
||||
});
|
||||
|
||||
it("resolves the Matins hymn to its own proper text, not the apostle Common's", () => {
|
||||
const hymn = ordo.parts.find((p) => p.kind === 'hymn') as { text: { text: { la: string } } } | undefined;
|
||||
expect(hymn?.text.text.la).toContain('Antra desérti téneris sub annis');
|
||||
expect(hymn?.text.text.la).not.toContain('Ætérna Christi múnera');
|
||||
});
|
||||
|
||||
it("resolves Nocturn 1/2 psalmody to its own proper antiphons over the shared Sunday psalm pool, not the apostle Common's antiphons", () => {
|
||||
const psalms = ordo.parts.filter((p) => p.kind === 'psalm') as {
|
||||
psalmNumber: number;
|
||||
antiphon?: { text: Record<string, string> };
|
||||
}[];
|
||||
const psalm1 = psalms.find((p) => p.psalmNumber === 1);
|
||||
const psalm63 = psalms.find((p) => p.psalmNumber === 63);
|
||||
expect(psalm1?.antiphon?.text.la).toContain('Priúsquam te formárem');
|
||||
expect(psalm63?.antiphon?.text.la).toContain('Nazarǽus');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -456,14 +456,35 @@ describe('resolveOrdo("vespers", ...)', () => {
|
||||
expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Iste Conféssor Dómini sacrátus');
|
||||
});
|
||||
|
||||
it("uses common-of-an-apostle's real office bundle for the Beheading of St. John the Baptist's First Vespers", () => {
|
||||
it("uses common-of-a-martyr's real office bundle for the Beheading of St. John the Baptist's First Vespers", () => {
|
||||
// Live-verified against Divinum Officium (Monastic Tridentinum 1617)
|
||||
// votive=C1 -- see vespers-hymn-common-of-an-apostle.yml's header.
|
||||
// votive=C2 -- see vespers-hymn-common-of-a-martyr.yml's header.
|
||||
// decollation-of-st-john-baptist.yml's own `common` field was
|
||||
// corrected from common-of-an-apostle to common-of-a-martyr (he
|
||||
// isn't an apostle; his own `minorHoursCommon` already agreed).
|
||||
const ordo = resolveOrdo('vespers', '2026-08-28');
|
||||
const chapter = ordo.parts.find((p) => p.kind === 'chapter');
|
||||
expect(chapter?.kind === 'chapter' ? chapter.text.citation?.en : undefined).toBe('Eph 2:19-20');
|
||||
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('Exsúltet cælum láudibus');
|
||||
expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Deus tuórum mílitum');
|
||||
});
|
||||
|
||||
it("resolves the Nativity of St. John the Baptist's own proper Vespers psalmody (2026-06-24), not the apostle Common's", () => {
|
||||
// Regression test: nativity-of-st-john-the-baptist.yml's `common`
|
||||
// field (common-of-an-apostle) used to leak into Vespers psalmody
|
||||
// since no proper override existed. The reference engine's own
|
||||
// Second Vespers (live-verified) uses only 4 psalms (109/110/111/112),
|
||||
// each with its own proper antiphon.
|
||||
const ordo = resolveOrdo('vespers', '2026-06-24');
|
||||
const psalms = ordo.parts.filter((p) => p.kind === 'psalm') as {
|
||||
psalmNumber: number;
|
||||
antiphon?: { text: Record<string, string> };
|
||||
}[];
|
||||
const psalm109 = psalms.find((p) => p.psalmNumber === 109);
|
||||
const psalm112 = psalms.find((p) => p.psalmNumber === 112);
|
||||
expect(psalm109?.antiphon?.text.la).toContain('Elísabeth Zacharíæ');
|
||||
expect(psalm112?.antiphon?.text.la).toContain('Tu, puer');
|
||||
expect(psalms.some((p) => p.antiphon?.text.la?.includes('Cóllocet eum'))).toBe(false);
|
||||
});
|
||||
|
||||
it("no longer gives St. Margaret of Scotland First Vespers now that Corpus Christi's own octave is modeled", () => {
|
||||
|
||||
Reference in New Issue
Block a user