Skip to content

ATS-MBR-MEM-008Preserve member connections through transfers and unit merges: Acceptance Test Set

Markdown

ATS-MBR-MEM-008

Preserve member connections through transfers and unit merges: Acceptance Test Set

Markdown
  • DocumentProposed

Planning

Proves capability
CAP-MBR-MEM-008

KindAcceptance test setProduct areaMembershipModuleMemberships, Applications and Membership BillingRevision1

Read atservices-membership 5994c270react-console baf6dae3

Test Scenarios

9 scenarios proving CAP-MBR-MEM-008; 7 bound to an existing test.

01 Continue an affiliation in the target unitapitest
Proves
BR-CAP-MBR-MEM-008-01
Preconditions
Jo has a primary Atlanta affiliation and a target without dues.
Steps
Transfer the Atlanta row on a future date and inspect both rows and the lifecycle event.
Expected
The original ends the preceding day; the successor begins on the selected date as primary and retains lineage, with a transfer event.
Data
Dated affiliations, merge cases, identity-bound memberships and officer grants required by the selected operation.
Bound to
services-membership:modules/memberships/tests/integration/services/affiliations.integration.spec.ts#transfers to a chapter that sells no dues: the old row ends the day before, the new one continues it as primary
services-membership:tests/acceptance/affiliations/MBR-ACC-0265.acceptance.ts#MBR-ACC-0265: Scenario 6 without dues: Jo moves from Atlanta to San Francisco from a future date, the old row ends the day before, the new row inherits her primary flag, and rosters read correctly on both sides of the date
Source
services-membership:modules/memberships/tests/integration/services/affiliations.integration.spec.ts#transfers to a chapter that sells no dues: the old row ends the day before, the new one continues it as primary
02 Reject direct transfers requiring duesapinegativetest
Proves
BR-CAP-MBR-MEM-008-02
Preconditions
San Francisco charges dues for Jo’s selected package.
Steps
Request a direct transfer into San Francisco.
Expected
The refusal identifies the component-change amendment and leaves the original affiliation intact.
Data
Dated affiliations, merge cases, identity-bound memberships and officer grants required by the selected operation.
Bound to
services-membership:tests/e2e/s06-midterm-transfer.e2e.spec.ts#refuses the console’s transfer 409 requires_amendment, naming the component_change amendment
services-membership:modules/memberships/tests/integration/services/affiliations.integration.spec.ts#refuses to transfer to a chapter that sells dues for the package (requires_amendment)
Source
services-membership:tests/e2e/s06-midterm-transfer.e2e.spec.ts#refuses the console’s transfer 409 requires_amendment, naming the component_change amendment
03 Read affiliations and rosters across the transfer dateapitest
Proves
BR-CAP-MBR-MEM-008-03
Preconditions
Jo has completed a dated transfer from Atlanta to San Francisco and retains Savannah.
Steps
Inspect dated affiliation views and unit rosters before and after the effective date.
Expected
Atlanta is replaced by San Francisco on the transfer date; Savannah and its ancestor coverage remain.
Data
Dated affiliations, merge cases, identity-bound memberships and officer grants required by the selected operation.
Bound to
services-membership:tests/e2e/s06-midterm-transfer.e2e.spec.ts#answers Atlanta and Savannah as of 2026-10-15, San Francisco and Savannah as of 2027-02-01, the primary moving
services-membership:tests/e2e/s06-midterm-transfer.e2e.spec.ts#takes Jo out of Atlanta’s roster from 2027-01-01 and into the Pacific Zone’s, keeping them in the Southeast Zone’s through Savannah
Source
services-membership:tests/e2e/s06-midterm-transfer.e2e.spec.ts#answers Atlanta and Savannah as of 2026-10-15, San Francisco and Savannah as of 2027-02-01, the primary moving
04 Account for each affiliation during a unit mergeapitest
Proves
BR-CAP-MBR-MEM-008-04
Preconditions
Savannah holds begun, future, duplicate and already closed affiliation cases.
Steps
Merge into Atlanta and inspect action counts, resulting rows and lifecycle events.
Expected
Begun ties transfer, future ties repoint, duplicates end and closed ties remain; the counts and lifecycle records describe the actions.
Data
Dated affiliations, merge cases, identity-bound memberships and officer grants required by the selected operation.
Bound to
services-membership:modules/memberships/tests/integration/services/affiliations-unit-merge.integration.spec.ts#answers what it did: one moved, one ended on the survivor, one left closed
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
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
services-membership:modules/memberships/tests/unit/unit-merge.spec.ts#re-points an affiliation that begins on or after the merge’s date
services-membership:tests/acceptance/affiliations/MBR-ACC-0277.acceptance.ts#MBR-ACC-0277: Savannah Chapter is merged into Atlanta: Pat's row is transferred, Kim's not-yet-begun row is re-pointed, Jo's duplicate is ended without carrying her primary flag, closed rows and a section's rows are left, and Savannah can be deactivated but never deleted
Source
services-membership:modules/memberships/tests/integration/services/affiliations-unit-merge.integration.spec.ts#answers what it did: one moved, one ended on the survivor, one left closed
05 Refuse an incompatible merge without writingapinegativeproposed
Proves
BR-CAP-MBR-MEM-008-05
Preconditions
The merge would require a different survivor type or introduce a new minimum-count violation.
Steps
Attempt the incompatible merge and inspect the reported rules and retained rows.
Expected
The merge reports affected memberships and rules without changing units or affiliations.
Data
Dated affiliations, merge cases, identity-bound memberships and officer grants required by the selected operation.
Source
services-membership:modules/memberships/services/affiliations/unit-merge.ts:decideMergedTerm
06 Move identity-bound holdings or report collisionsapiproposed
Proves
BR-CAP-MBR-MEM-008-06
Preconditions
Kim has a merged-unit identity and another owner already holds the surviving identity in the same program.
Steps
Merge the identity unit for Kim, then attempt a merge with a duplicate surviving holding.
Expected
Kim’s identity changes at the next version; a duplicate surviving holding causes a refusal without changes.
Data
Dated affiliations, merge cases, identity-bound memberships and officer grants required by the selected operation.
Source
services-membership:modules/memberships/services/affiliations/unit-merge.ts:decideIdentityBound
07 Preserve a unit referenced by historical affiliationsapinegativetest
Proves
BR-CAP-MBR-MEM-008-07
Preconditions
Savannah has been merged but affiliation history still names it.
Steps
Request deletion of the referenced merged unit.
Expected
Deletion is rejected because affiliation rows still reference the unit.
Data
Dated affiliations, merge cases, identity-bound memberships and officer grants required by the selected operation.
Bound to
services-membership:tests/e2e/s13-unit-merge.e2e.spec.ts#refuses to delete Savannah while affiliations name it (unit_has_affiliations)
Source
services-membership:tests/e2e/s13-unit-merge.e2e.spec.ts#refuses to delete Savannah while affiliations name it (unit_has_affiliations)
08 Expose moved members to surviving-unit officersapitest
Proves
BR-CAP-MBR-MEM-008-08
Preconditions
Alex’s officer grant reaches Atlanta while Pat initially belongs only to Savannah.
Steps
Read Pat with Alex’s grant before and after the unit merge.
Expected
Pat is outside Alex’s scope before the merge and readable through Atlanta afterward.
Data
Dated affiliations, merge cases, identity-bound memberships and officer grants required by the selected operation.
Bound to
services-membership:tests/e2e/s13-unit-merge.e2e.spec.ts#shows Alex Jo and not Pat before the merge
services-membership:tests/e2e/s13-unit-merge.e2e.spec.ts#shows Alex Pat now, with Pat’s Atlanta affiliation in scope
Source
services-membership:tests/e2e/s13-unit-merge.e2e.spec.ts#shows Alex Jo and not Pat before the merge
09 Use a new tree without changing affiliation identityapitest
Proves
BR-CAP-MBR-MEM-008-12
Preconditions
Atlanta has a membership affiliation and is moved from the Eastern Region to the Pacific Zone.
Steps
Inspect Jo’s affiliation identity and current rosters, then query ancestry before the move.
Expected
The affiliation keeps its id, version and unit; current ancestry reaches the West, while historical ancestry still reaches the East.
Data
Dated affiliations, merge cases, identity-bound memberships and officer grants required by the selected operation.
Bound to
services-membership:tests/e2e/s09-restructuring.e2e.spec.ts#rewrites no affiliation: Jo’s row is the same row, version and unit
services-membership:tests/e2e/s09-restructuring.e2e.spec.ts#shows Jo under the Western Region and the Pacific Zone today, and no longer under the Eastern Region
services-membership:tests/e2e/s09-restructuring.e2e.spec.ts#still holds Atlanta among the Eastern Region’s descendants as of the period end
Source
services-membership:tests/e2e/s09-restructuring.e2e.spec.ts#rewrites no affiliation: Jo’s row is the same row, version and unit

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.