Skip to content

ATS-MBR-MEM-001Direct Membership Creation: Acceptance Test Set

Markdown

ATS-MBR-MEM-001

Direct Membership Creation: Acceptance Test Set

Markdown
  • DocumentProposed

Planning

Proves capability
CAP-MBR-MEM-001

KindAcceptance test setProduct areaMembershipModuleMemberships, Applications and Membership BillingRevision1

Read atservices-membership 5994c270react-console baf6dae3

Test Scenarios

11 scenarios proving CAP-MBR-MEM-001; 6 bound to an existing test.

01 Invalid creation leaves no membershipapinegativeproposed
Proves
BR-CAP-MBR-MEM-001-01
Preconditions
A prepared workspace contains the FAA membership configuration and the records needed for this case.
Steps
Submit requests with missing owner, reason or initial period, incompatible owner categories and inactive programs, then submit a valid request.
Expected
Invalid requests return validation failures identifying their problems; the successful request finds no residue from earlier failures.
Data
FAA program, package, unit and membership fixtures from the integration setup.
Source
services-membership:tests/acceptance/memberships/MBR-ACC-0162.acceptance.ts#MBR-ACC-0162
02 A duplicate principal holding is rejectedapinegativetest
Proves
BR-CAP-MBR-MEM-001-02
Preconditions
A prepared workspace contains the FAA membership configuration and the records needed for this case.
Steps
Create a principal membership and repeat creation for the same owner and program.
Expected
Only the first membership remains, and the duplicate refusal directs the caller to add a term.
Data
FAA program, package, unit and membership fixtures from the integration setup.
Bound to
services-membership:modules/memberships/tests/integration/services/staff-operations.integration.spec.ts#refuses a second principal membership of the same owner in the program
Source
services-membership:modules/memberships/tests/integration/services/staff-operations.integration.spec.ts#refuses a second principal membership of the same owner in the program
03 Identity binding accepts only the required unit typeapinegativetest
Proves
BR-CAP-MBR-MEM-001-02 BR-CAP-MBR-MEM-001-03
Preconditions
A prepared workspace contains the FAA membership configuration and the records needed for this case.
Steps
Create holdings for the same person in two different chapters, retry one chapter, then attempt an incompatible unit type and an absent identity unit.
Expected
Both distinct chapter holdings succeed; the duplicate chapter is refused as an existing holding, and incompatible or missing units fail validation.
Data
FAA program, package, unit and membership fixtures from the integration setup.
Bound to
services-membership:tests/acceptance/memberships/MBR-ACC-0187.acceptance.ts#MBR-ACC-0187: A chapter sells its own membership bound to the chapter: one per person per chapter, refused for a unit of the wrong type, invisible to another chapter's officer, and absent from the as-of answer's organizational units
Source
services-membership:tests/acceptance/memberships/MBR-ACC-0187.acceptance.ts#MBR-ACC-0187: A chapter sells its own membership bound to the chapter: one per person per chapter, refused for a unit of the wrong type, invisible to another chapter's officer, and absent from the as-of answer's organizational units
04 Creation rejects inactive or incompatible term configurationapinegativeproposed
Proves
BR-CAP-MBR-MEM-001-04
Preconditions
A prepared workspace contains the FAA membership configuration and the records needed for this case.
Steps
Attempt initial terms using an inactive type, an inactive package and a package attached to another type.
Expected
Each creation fails validation and identifies its type or package problem.
Data
FAA program, package, unit and membership fixtures from the integration setup.
Source
services-membership:tests/acceptance/memberships/MBR-ACC-0180.acceptance.ts#MBR-ACC-0180
05 Package rules calculate omitted datesapiproposed
Proves
BR-CAP-MBR-MEM-001-05
Preconditions
A prepared workspace contains the FAA membership configuration and the records needed for this case.
Steps
Create package-based initial terms without dates, supplying an effective date in one request and omitting it in another.
Expected
Each saved period matches the package calculation for the supplied effective date or workspace business date.
Data
FAA program, package, unit and membership fixtures from the integration setup.
Source
services-membership:modules/memberships/services/operations/staff-operations.ts:datesOf
06 Concurrent overlap is rejected in both service and databaseapinegativetest
Proves
BR-CAP-MBR-MEM-001-06
Preconditions
A prepared workspace contains the FAA membership configuration and the records needed for this case.
Steps
Submit overlapping periods through two connections simultaneously, then insert an overlap directly without the service guard.
Expected
One concurrent write commits; the other identifies the winning term as its overlap, and the direct insert fails the database exclusion.
Data
FAA program, package, unit and membership fixtures from the integration setup.
Bound to
services-membership:modules/memberships/tests/integration/services/term-concurrency.integration.spec.ts#refuses the other with term_overlap, naming the term the first committed
services-membership:modules/memberships/tests/integration/services/term-concurrency.integration.spec.ts#is backed by the migration’s exclusion when the persistence check is bypassed
Source
services-membership:modules/memberships/tests/integration/services/term-concurrency.integration.spec.ts#commits exactly one of the two terms
07 Exclusive programs accept adjacency but reject shared daysapinegativetest
Proves
BR-CAP-MBR-MEM-001-07
Preconditions
A prepared workspace contains the FAA membership configuration and the records needed for this case.
Steps
Give Kim a National membership; attempt overlapping Premium, adjacent Premium and membership in an unrelated Section.
Expected
The overlap identifies the conflicting holding and fails; the adjacent and unrelated holdings succeed.
Data
FAA program, package, unit and membership fixtures from the integration setup.
Bound to
services-membership:tests/acceptance/memberships/MBR-ACC-0171.acceptance.ts#MBR-ACC-0171: An owner never holds two tiers at once: overlapping programs of one exclusivity group are refused, adjacent and ungrouped ones allowed, pending terms count, and two simultaneous adds probe the lock
Source
services-membership:tests/acceptance/memberships/MBR-ACC-0171.acceptance.ts#MBR-ACC-0171: An owner never holds two tiers at once: overlapping programs of one exclusivity group are refused, adjacent and ungrouped ones allowed, pending terms count, and two simultaneous adds probe the lock
08 Creation uses the configured numbering sourceapitest
Proves
BR-CAP-MBR-MEM-001-08
Preconditions
A prepared workspace contains the FAA membership configuration and the records needed for this case.
Steps
Create holdings under workspace, program and CRM numbering, including an owner without a CRM number.
Expected
The assigned number follows the selected source, and CRM numbering refuses the owner lacking a number.
Data
FAA program, package, unit and membership fixtures from the integration setup.
Bound to
services-membership:tests/acceptance/memberships/MBR-ACC-0186.acceptance.ts#MBR-ACC-0186: Membership numbers come from the program's numbering scope: one sequence for the workspace, a program's own sequence, or the owner's CRM number, which refuses an owner without one and repeats across programs
Source
services-membership:tests/acceptance/memberships/MBR-ACC-0186.acceptance.ts#MBR-ACC-0186: Membership numbers come from the program's numbering scope: one sequence for the workspace, a program's own sequence, or the owner's CRM number, which refuses an owner without one and repeats across programs
09 Enrolment preserves the reason and join-date originapiproposed
Proves
BR-CAP-MBR-MEM-001-09
Preconditions
A prepared workspace contains the FAA membership configuration and the records needed for this case.
Steps
Create one membership with an inferred join date and another with an explicit staff date.
Expected
Each saves a committed first term and enrolment reason; the join date and its origin distinguish the inferred date from the staff choice.
Data
FAA program, package, unit and membership fixtures from the integration setup.
Source
services-membership:modules/memberships/tests/integration/services/staff-operations.integration.spec.ts#creates a membership with its committed term, its enrolment and its cache
10 Import insertion and update have distinct event behaviorapiproposed
Proves
BR-CAP-MBR-MEM-001-10
Preconditions
A prepared workspace contains the FAA membership configuration and the records needed for this case.
Steps
Load memberships before periods after configuration, including a granting package and an organization owner; then upsert an existing period.
Expected
Insertion records an imported event; update adds no new imported event; status is refreshed without generating grants or organizational children.
Data
FAA program, package, unit and membership fixtures from the integration setup.
Source
services-membership:modules/memberships/tests/integration/data-operations/membership-data-operations.integration.spec.ts#orders the loads as 10 §1 does: configuration, then memberships, then terms
11 Import failures identify the affected itemapinegativetest
Proves
BR-CAP-MBR-MEM-001-11
Preconditions
A prepared workspace contains the FAA membership configuration and the records needed for this case.
Steps
Prevalidate a malformed term field and attempt a period overlapping an existing term.
Expected
The invalid field is identified before writing, and the overlap receives an item-level conflict classification.
Data
FAA program, package, unit and membership fixtures from the integration setup.
Bound to
Source
services-membership:modules/memberships/tests/integration/data-operations/membership-data-operations.integration.spec.ts#rejects a malformed item at prevalidation, naming its field

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.