calendar: enable the four remaining real octaves
Deploy / deploy (push) Successful in 44s

Assumption (Aug 15-22), Nativity of the BVM (Sep 8-15), Immaculate
Conception (Dec 8-15), and All Saints (Nov 1-8) now declare octave:
{ enabled: true }, same generic mechanism as St. Lawrence and the
Christmas trio. Every octave this pull has identified is now modeled;
Matins reading content is a separate, larger follow-up (see conversation)
-- these still just commemorate at L/V-equivalent level for now.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-11 08:20:47 -04:00
parent da3b6e893e
commit eec76a1e4e
7 changed files with 36 additions and 7 deletions
+9 -2
View File
@@ -10,10 +10,17 @@ describe('activeOctavesFor', () => {
const day1 = activeOctavesFor('2026-08-10'); // St. Lawrence's own day
expect(day1).toEqual([{ id: 'st-lawrence', name: 'St. Lawrence, Martyr', wins: 'semiduplex', dayNumber: 1 }]);
// Aug 17 is also day 3 of the Assumption's own octave (started Aug 15) --
// the two run concurrently this time of year.
const day8 = activeOctavesFor('2026-08-17');
expect(day8).toEqual([{ id: 'st-lawrence', name: 'St. Lawrence, Martyr', wins: 'semiduplex', dayNumber: 8 }]);
expect(day8).toEqual([
{ id: 'st-lawrence', name: 'St. Lawrence, Martyr', wins: 'semiduplex', dayNumber: 8 },
{ id: 'assumption', name: 'The Assumption of the Blessed Virgin Mary', wins: 'semiduplex', dayNumber: 3 },
]);
expect(activeOctavesFor('2026-08-18')).toEqual([]);
// Aug 23: past both Lawrence's (ended Aug 17) and the Assumption's
// (ended Aug 22) windows.
expect(activeOctavesFor('2026-08-23')).toEqual([]);
});
it("Pentecost's octave uses its own configured threshold (duplex), not the default (semiduplex)", () => {