Skip to content

JNY-MBR-STR-005Interpret expiry, lapse and a later rejoin

Markdown

JNY-MBR-STR-005

Interpret expiry, lapse and a later rejoin

Markdown
  • DocumentDraft
  • Product intentProposed
  • ImplementationObserved

KindJourneyProduct areaMembershipModuleOrganizational Structure, Membership Configuration and TermsRevision1End-to-endNone

Read atservices-membership 5994c270react-console baf6dae3

The Formal Contract

The narrative above explains; the sections below are authoritative — the rules, scenarios and tests this document binds.

Goal
Follow an ended term through grace and lapse, then distinguish a fresh rejoin from earlier continuity.

Steps

#SurfaceActionCapabilityExpectedProvenance
1listMembershipsEvaluate Sam’s standing just after the September term end.CAP-MBR-STR-016The configured allowance returns grace.test
services-membership:tests/e2e/s04-lapse-and-rejoin.e2e.spec.ts#scenario 4: lapse, drop and rejoin through a staff term › answers grace the day after the term ended and lapsed once the 60 days are over
2runStatusSweepEvaluate sweep detections after grace finishes.CAP-MBR-STR-016The engine identifies a lapse effective after the last grace day.inferred
services-membership:modules/terms/tests/unit/sweep.spec.ts#the sweep’s detections › detects the lapse the day after grace ends, effective that day, with the expiry
3terminateTermTerminate the ended term using the nonrenewal explanation.CAP-MBR-STR-017The action records its reason without changing the already-ended period dates.test
services-membership:tests/e2e/s04-lapse-and-rejoin.e2e.spec.ts#scenario 4: lapse, drop and rejoin through a staff term › drops the expired term with its reason and leaves its dates as they were
4createTermEstablish a new term after the reinstatement allowance has passed.CAP-MBR-STR-015The offering calculation starts a fresh anniversary period.test
services-membership:tests/e2e/s04-lapse-and-rejoin.e2e.spec.ts#scenario 4: lapse, drop and rejoin through a staff term › starts the rejoin as a fresh anniversary period from its own date
5getMembershipInspect the holding’s continuity and join information.CAP-MBR-STR-016The long gap yields a second episode while the original joining date remains.test
services-membership:tests/e2e/s04-lapse-and-rejoin.e2e.spec.ts#scenario 4: lapse, drop and rejoin through a staff term › answers two continuity episodes

Alternate and Failure Paths

PathFrom stepConditionPath takenOutcomeProvenance
alternate4Sam purchases inside the reinstatement allowance.The new period begins immediately after the previous end.The adjacent periods can belong to one continuity episode.inferred
services-membership:modules/terms/tests/unit/term-rules.spec.ts#term rules: the rules of 1.0 beyond its spec cases › continues a terminated term on the last day of its window
failure3Staff select a suspension-only explanation for termination.The action rejects the reason mismatch.The existing term remains intact.observed

Assertions

IdStatementProvenance
01The example transitions from grace to lapse across its configured boundary.test
services-membership:tests/e2e/s04-lapse-and-rejoin.e2e.spec.ts#scenario 4: lapse, drop and rejoin through a staff term › answers grace the day after the term ended and lapsed once the 60 days are over
02The late rejoin creates a fresh period based on its own purchase date.test
services-membership:tests/e2e/s04-lapse-and-rejoin.e2e.spec.ts#scenario 4: lapse, drop and rejoin through a staff term › starts the rejoin as a fresh anniversary period from its own date
03The long gap begins another episode without replacing the original join date.test
services-membership:tests/e2e/s04-lapse-and-rejoin.e2e.spec.ts#scenario 4: lapse, drop and rejoin through a staff term › keeps the original join date and restarts continuity at the rejoin (a gap of 437 days is more than 60)

End-to-end policy: none: This workflow concerns backend period interpretation and membership administration. Existing unit and API evidence provides the relevant proof; no module administration screen participates.

The Markdown files under specs/ in rhythmsoftware/rhythm-v2-docs are the canonical source of truth. This reader is a generated, read-only projection of them.