Skip to content

ATS-MBR-STR-020Provision, migrate and remove membership setup: Capability Test Specification

Markdown

ATS-MBR-STR-020

Provision, migrate and remove membership setup: Capability Test Specification

Markdown
  • DocumentProposed

Planning

Proves capability
CAP-MBR-STR-020

Design

Executed by
TST-MBR-STR-001, TST-MBR-STR-004, TST-MBR-STR-047

KindAcceptance test setProduct areaMembershipModuleOrganizational Structure, Membership Configuration and TermsRevision2

Read atservices-membership 5994c270react-console baf6dae3

Coverage

  • Rule gap: FND-MBR-STR-073
  • Transition covered
  • Validation gap: FND-MBR-STR-073
  • Permission gap: FND-MBR-STR-073
  • Edge covered
  • Failure covered
  • Boundary covered
  • Concurrency gap: FND-MBR-STR-073
  • Invariant gap: FND-MBR-STR-073
  • Interaction covered

Test Scenarios

9 scenarios proving CAP-MBR-STR-020; 5 bound to an existing test.

01 Provisioning applies standard purposes only oncetransitionapitest
Proves
BR-CAP-MBR-STR-020-01
Preconditions
An isolated Membership-licensed workspace contains the relevant records, with caller permissions selected for the case.
Steps
Invoke structure provisioning twice and inspect readiness.
Expected
The first supplies four purposes and the second adds none while readiness remains satisfied.
Data
The FAA example records or equivalent records prepared within the isolated workspace.
Bound to
services-membership:modules/structure/tests/integration/services/lifecycle/structure-participant.integration.spec.ts#the structure participant in the database › seeds the four relationship types at provisioning
services-membership:modules/structure/tests/integration/services/lifecycle/structure-participant.integration.spec.ts#the structure participant in the database › writes nothing on a second provisioning
services-membership:modules/structure/tests/integration/services/lifecycle/structure-participant.integration.spec.ts#the structure participant in the database › reports a provisioned tenant ready
Source
services-membership:modules/structure/tests/integration/services/lifecycle/structure-participant.integration.spec.ts#the structure participant in the database › seeds the four relationship types at provisioning
02 Purge requires deletion state and preserves other customersboundaryapinegativetest
Proves
BR-CAP-MBR-STR-020-02
Preconditions
An isolated Membership-licensed workspace contains the relevant records, with caller permissions selected for the case.
Steps
Attempt purge for an active workspace, then drain a deleting workspace beside another.
Expected
The active attempt deletes nothing; the deleting workspace is emptied including versions and the other stays intact.
Data
The FAA example records or equivalent records prepared within the isolated workspace.
Bound to
services-membership:modules/structure/tests/integration/services/lifecycle/structure-participant.integration.spec.ts#the structure participant in the database › refuses to purge a tenant Platform is not deleting, before any row is removed
services-membership:modules/structure/tests/integration/services/lifecycle/structure-participant.integration.spec.ts#the structure participant in the database › refuses to purge a tenant Platform holds no row of, before any row is removed
services-membership:modules/structure/tests/integration/services/lifecycle/structure-participant.integration.spec.ts#the structure participant in the database › purges every table of a tenant being deleted, versions included, and leaves another tenant whole
Source
services-membership:modules/structure/tests/integration/services/lifecycle/structure-participant.integration.spec.ts#the structure participant in the database › refuses to purge a tenant Platform is not deleting, before any row is removed
03 Reset preserves classifications in an allowed statetransitionapinegativetest
Proves
BR-CAP-MBR-STR-020-03
Preconditions
An isolated Membership-licensed workspace contains the relevant records, with caller permissions selected for the case.
Steps
Attempt active-workspace reset and then reset an allowed workspace state.
Expected
The first fails and the allowed reset removes unit data while keeping both kind catalogues.
Data
The FAA example records or equivalent records prepared within the isolated workspace.
Bound to
services-membership:modules/structure/tests/integration/services/lifecycle/structure-participant.integration.spec.ts#the structure participant in the database › refuses to reset the tree of a tenant that is active, before any row is removed
services-membership:modules/structure/tests/integration/services/lifecycle/structure-participant.integration.spec.ts#the structure participant in the database › resets the tree of a tenant being reset and keeps its unit and relationship types
Source
services-membership:modules/structure/tests/integration/services/lifecycle/structure-participant.integration.spec.ts#the structure participant in the database › refuses to reset the tree of a tenant that is active, before any row is removed
04 Bulk structure loading rebuilds and reconcilesinteractionapitest
Proves
BR-CAP-MBR-STR-020-05
Preconditions
An isolated Membership-licensed workspace contains the relevant records, with caller permissions selected for the case.
Steps
Load parent-first records with a missing-parent case and a relocation upsert, then rebuild and inspect reconciliation.
Expected
The invalid parent case fails and the completed valid structure reconciles after its deferred rebuild.
Data
The FAA example records or equivalent records prepared within the isolated workspace.
Bound to
Source
services-membership:docs/migrations/structure/README.md#Routes, permissions, metadata, data operations, lifecycle, well-known objects,services-membership:modules/data-jobs/tests/integration/services/operations/structure-data-operations.integration.spec.ts#rebuilds the closure once after the load, and reconciles the tree whole
05 Bulk configuration classifies invalid itemsfailureapinegativetest
Proves
BR-CAP-MBR-STR-020-06
Preconditions
An isolated Membership-licensed workspace contains the relevant records, with caller permissions selected for the case.
Steps
Load dependent programs, types and packages including a malformed item and a matched upsert.
Expected
Invalid input is classified for rejection and valid writes apply through the configuration processes.
Data
The FAA example records or equivalent records prepared within the isolated workspace.
Bound to
services-membership:tests/acceptance/configuration/MBR-ACC-0110.acceptance.ts#MBR-ACC-0110: A migration loads programs, types and packages in bulk: an insert is the record the route would have made, an upsert converges by id or by the producer's source key, a package needs its product first, and a malformed item is rejected naming its field while the others proceed
Source
services-membership:tests/acceptance/configuration/MBR-ACC-0110.acceptance.ts#MBR-ACC-0110: A migration loads programs, types and packages in bulk: an insert is the record the route would have made, an upsert converges by id or by the producer's source key, a package needs its product first, and a malformed item is rejected naming its field while the others proceed
06 Bulk setup omits unsupported record familiesboundaryapiproposed
Proves
BR-CAP-MBR-STR-020-07
Preconditions
An isolated workspace contains the records and current versions needed for the case.
Steps
Inspect the registered configuration load operations alongside the program, type and package operations.
Expected
There is no load operation for status reasons, policy sets or program requirements.
Data
Separate fixture records for the accepted and refused operations.
Source
services-membership:modules/configuration/services/data-operations/configuration-operations.ts:configurationDataOperations
07 Purged seed bookkeeping prevents reseedingedgeapinegativeproposed
Proves
BR-CAP-MBR-STR-020-09
Preconditions
An isolated workspace contains the records and current versions needed for the case.
Steps
Provision a dedicated workspace, purge it in deleting state, restore a permitted provisioning state and provision the same identity again.
Expected
Applied seed keys remain and the four removed relationship purposes are not recreated.
Data
Separate fixture records for the accepted and refused operations.
Source
react-console:acceptance/membership/journeys/structure/MBR-ACC-0028.json
08 Closing a load refuses excessive depthfailureapinegativeproposed
Proves
BR-CAP-MBR-STR-020-10
Preconditions
An isolated workspace contains the records and current versions needed for the case.
Steps
Load available kinds and parent-first units to depth 32, inspect pre-rebuild ancestry and attempt the closing rebuild.
Expected
The closing transaction fails; earlier loaded parent references remain and require reconciliation before ordinary tree reads can be trusted.
Data
Separate fixture records for the accepted and refused operations.
Source
services-membership:modules/structure/services/tree/tree-loads.ts:loadUnit
09 Provisioning preserves customer relationship purposesinteractionapiproposed
Proves
BR-CAP-MBR-STR-007-06 BR-CAP-MBR-STR-020-01
Preconditions
An isolated workspace contains the records and current versions needed for the case.
Steps
Provision, add a customer relationship purpose and provision again.
Expected
The standard purposes remain present once and the customer purpose retains its values.
Data
Separate fixture records for the accepted and refused operations.
Source
services-membership:tests/e2e/structure-api.e2e.spec.ts#the structure API, end to end in process › creates a relationship type with an id derived from its name,services-membership:modules/structure/tests/integration/services/lifecycle/structure-participant.integration.spec.ts#the structure participant in the database › seeds the four relationship types at provisioning

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.