Skip to content

JNY-MBR-MEM-006A chapter is merged and its members follow it

Markdown

JNY-MBR-MEM-006

A chapter is merged and its members follow it

Markdown
  • DocumentDraft
  • Product intentConfirmed
  • ImplementationPartially observed

KindJourneyProduct areaMembershipModuleMemberships, Applications and Membership BillingRevision1End-to-endOptional

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
Merge one chapter into another without stranding a single member, while keeping the record of where everyone was before.

Steps

#SurfaceActionCapabilityExpectedProvenance
1mergeOrganizationalUnitThe administrator merges Savannah into Atlanta today.CAP-MBR-MEM-008The merge answers one tie moved and one ended on the survivor.test
services-membership:tests/e2e/s13-unit-merge.e2e.spec.ts#merges Savannah, counting one affiliation moved and one ended on the survivor
2getMembershipRead Pat and Jo.CAP-MBR-MEM-008Pat's Savannah tie ended yesterday and continues in Atlanta as primary; Jo keeps Atlanta and her Savannah tie ended.test
services-membership:tests/e2e/s13-unit-merge.e2e.spec.ts#ends Pat’s Savannah affiliation yesterday and continues it in Atlanta as primary from today
3listMembershipsRead the Atlanta and Savannah rosters.CAP-MBR-MEM-007Jo and Pat are on Atlanta's; Savannah's is empty.test
services-membership:tests/e2e/s13-unit-merge.e2e.spec.ts#lists Jo and Pat on Atlanta’s roster today, and no one on Savannah’s
4getMembershipAlex, an Atlanta officer, reads Pat.CAP-MBR-MEM-015Pat is now in Alex's scope.test
services-membership:tests/e2e/s13-unit-merge.e2e.spec.ts#shows Alex Pat now, with Pat’s Atlanta affiliation in scope
5getMembershipAsOfRead an identity-bound member as of before the merge.CAP-MBR-MEM-018The member is shown under the merged chapter until the merge.test
services-membership:modules/memberships/tests/integration/services/identity-unit-merge.integration.spec.ts#keeps the version before the merge, so the history shows Macon until the merge
6deleteOrganizationalUnitTry to delete Savannah.CAP-MBR-MEM-008Refused while ties name it.test
services-membership:tests/e2e/s13-unit-merge.e2e.spec.ts#refuses to delete Savannah while affiliations name it (unit_has_affiliations)

Alternate and Failure Paths

PathFrom stepConditionPath takenOutcomeProvenance
alternate1Savannah has members bound to it by identity.Their memberships move to Atlanta with a transfer event.They are Atlanta members from the merge.test
services-membership:modules/memberships/tests/integration/services/identity-unit-merge.integration.spec.ts#records the move as a transferred event of reason unit_merged, naming both units
alternate1Atlanta is moved elsewhere in the tree instead of merged.No tie is rewritten; rosters and authority follow the new tree.Last month's report still files Atlanta where it was.test
services-membership:tests/e2e/s09-restructuring.e2e.spec.ts#still files Atlanta under the Eastern Region in a September restated after the move: the period end’s tree
failure1Savannah is merged into a zone, or a member would fall below the package's chapter minimum.The whole merge is refused, naming the members and rules.Nothing changes.test
services-membership:modules/memberships/tests/integration/services/affiliations-unit-merge.integration.spec.ts#is refused 409 affiliations_not_movable, naming the memberships and the rule
failure1An owner already holds Atlanta's chapter membership as well as Savannah's.The merge is refused on that member.Nothing changes.test
services-membership:modules/memberships/tests/integration/services/identity-unit-merge.integration.spec.ts#is refused 409 affiliations_not_movable on the identity_unit_held rule, naming Jo’s Savannah membership and no term
failure2Other applications wait to hear of the ties the merge ended.No event is stated for an ended, withdrawn or re-pointed tie.Committees and others do not hear of them.unknown

Assertions

IdStatementProvenance
01Pat continues in Atlanta as primary from the merge's date, with no gap.test
services-membership:modules/memberships/tests/integration/services/affiliations-unit-merge.integration.spec.ts#ends Pat’s Savannah affiliation the day before and continues it in Atlanta as primary
02Jo's duplicate Savannah tie is ended without a new tie.test
services-membership:modules/memberships/tests/integration/services/affiliations-unit-merge.integration.spec.ts#keeps Jo’s Atlanta affiliation as it was and ends her Savannah one, with no new row
03Savannah cannot be deleted while any tie names it.test
services-membership:tests/e2e/s13-unit-merge.e2e.spec.ts#refuses to delete Savannah while affiliations name it (unit_has_affiliations)

End-to-end policy: optional: The structure and membership screens are not built; the journey is proved through the API in process. A browser test becomes required when the structure screens offer the merge.

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.