Track a transferred saint's origin date on DayWinner and Commemoration
Adds transferredFrom to both DayWinner's sanctoral variant and Commemoration's sanctoral variant, set in calendar/index.ts's applyIncomingTransfer whenever a transferred-in candidate actually lands (wins outright) or ends up merely commemorated (lost a collision, or fell below the landing day's own threshold) — previously this signal was discarded after resolveDay used it once to decide the winner, so nothing downstream could tell a transferred feast apart from a native one. Also adds transferredAway to LiturgicalDay, set from a date's own native occurrence when its candidate couldn't be kept there at all, so a UI can note "this office moved elsewhere" without asserting a specific landing date (which a later, unmodeled multi-hop chain — e.g. into Holy Week — could get wrong). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013g7AsSvMD9oazR17f3BxLz
This commit is contained in:
@@ -28,7 +28,14 @@ describe('transfer mechanism (resolveDay integration)', () => {
|
||||
rank: 'semiduplex',
|
||||
});
|
||||
expect(saturday.commemorations).toEqual([
|
||||
{ kind: 'sanctoral', id: 'vigil-of-st-lawrence', name: 'Vigil of St. Lawrence', nameLa: 'Vigilia Sancti Laurentii', rank: 'vigil' },
|
||||
{
|
||||
kind: 'sanctoral',
|
||||
id: 'vigil-of-st-lawrence',
|
||||
name: 'Vigil of St. Lawrence',
|
||||
nameLa: 'Vigilia Sancti Laurentii',
|
||||
rank: 'vigil',
|
||||
transferredFrom: '2026-08-09',
|
||||
},
|
||||
]);
|
||||
|
||||
// The Sunday's own winner is unaffected by the vigil, but St. Romanus
|
||||
|
||||
Reference in New Issue
Block a user