ATS-MBR-MEM-001 Direct Membership Creation: Acceptance Test Set
Markdown Planning / Membership / Memberships, Applications and Membership Billing / Membership Holdings and Periods / Capability Test Specification Direct Membership Creation: Acceptance Test Set Coverage Show evidence (sources, provenance, origins, pinned commits)Test Scenarios 11 scenarios proving CAP-MBR-MEM-001 ; 6 bound to an existing test.
01 Invalid creation leaves no membership api negative proposed
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 rejected api negative test
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 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 type api negative test
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 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 configuration api negative proposed
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 dates api proposed
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 database api negative test
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 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 days api negative test
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 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 source api test
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 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 origin api proposed
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 behavior api proposed
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 Next Capability Test Specification → ATS-MBR-MEM-002 · Extend an existing membership through a staff term: Acceptance Test Set