The coverage map distinguishes specified examples from missing proof. A covered category means an expected case is specified; executable bindings and their run results remain separate evidence. Each required rule has a proof link or an explicit coverage finding in the structured rule ledger.
Package references protect stored change policies. Save a policy set, reference it from a package and try deleting the policy set at its current version.
Coverage
Rulegap: FND-MBR-STR-067
Transitiongap: FND-MBR-STR-067
Validationcovered
Permissioncovered
Edgegap: FND-MBR-STR-067
Failuregap: FND-MBR-STR-067
Boundarycovered
Concurrencygap: FND-MBR-STR-067
Invariantgap: FND-MBR-STR-067
Interactioncovered
Test Scenarios
4 scenarios proving CAP-MBR-STR-014; 2 bound to an existing test.
01Policy list size and replacement identity are explicitboundaryapinegativetest
An isolated Membership-licensed workspace contains the relevant records, with caller permissions selected for the case.
Steps
Compare lists of 200 and 201 cases, then resubmit the allowed list.
Expected
The oversized list fails and replacement allocates new case identities.
Data
The FAA example records or equivalent records prepared within the isolated workspace.
Bound to
services-membership:tests/acceptance/configuration/MBR-ACC-0106.acceptance.ts#MBR-ACC-0106: Change policy sets are kept exactly as written: every policy field round-trips with its defaults, the list is rewritten whole with new ids, two hundred policies fit and the two-hundred-and-first does not, a policy naming both a type and a package on one side is refused raw, and ids nobody checks are accepted
services-membership:tests/acceptance/configuration/MBR-ACC-0106.acceptance.ts#MBR-ACC-0106: Change policy sets are kept exactly as written: every policy field round-trips with its defaults, the list is rewritten whole with new ids, two hundred policies fit and the two-hundred-and-first does not, a policy naming both a type and a package on one side is refused raw, and ids nobody checks are accepted
02A change side cannot specify two selectorsvalidationapinegativetest
An isolated Membership-licensed workspace contains the relevant records, with caller permissions selected for the case.
Steps
Submit both a source type and source package in one policy.
Expected
The write fails and identifies the source package selector.
Data
The FAA example records or equivalent records prepared within the isolated workspace.
Bound to
services-membership:tests/acceptance/configuration/MBR-ACC-0106.acceptance.ts#MBR-ACC-0106: Change policy sets are kept exactly as written: every policy field round-trips with its defaults, the list is rewritten whole with new ids, two hundred policies fit and the two-hundred-and-first does not, a policy naming both a type and a package on one side is refused raw, and ids nobody checks are accepted
services-membership:tests/acceptance/configuration/MBR-ACC-0106.acceptance.ts#MBR-ACC-0106: Change policy sets are kept exactly as written: every policy field round-trips with its defaults, the list is rewritten whole with new ids, two hundred policies fit and the two-hundred-and-first does not, a policy naming both a type and a package on one side is refused raw, and ids nobody checks are accepted
An isolated workspace contains the records and current versions needed for the case.
Steps
Save a policy set, reference it from a package and try deleting the policy set at its current version.
Expected
The package remains readable and the referenced policy set cannot be removed.
Data
Separate fixture records for the accepted and refused operations.
Source
services-membership:tests/e2e/database-refusals.e2e.spec.ts#mistakes only the database catches, through the API › DEF-MBR-0086: a configuration write a check, a foreign key or an integer column refuses › refuses a change policy set that does not exist 400 naming change_policy_set_id,services-membership:modules/configuration/services/configuration/configuration-records.ts:policySetResource
04Workspace authority gates this capabilitypermissionapinegativeproposed
An isolated workspace contains the records and current versions needed for the case.
Steps
Exercise the capability’s exposed operations with its read-only and management callers, then repeat with application access removed, an unlicensed workspace and an unavailable workspace.
Expected
Each named operation requires its declared authority; admission failures occur before any record or calculated result is exposed.
Data
Separate fixture records for the accepted and refused operations.
Source
services-membership:tests/unit/route-authorization.spec.ts#route authorization: every Membership operation names its permission › requires membership.structure.read of every structure read and membership.structure.manage of every change,services-membership:modules/configuration/aws/api/configuration.routes.ts:configurationModuleRoutes,services-membership:tests/e2e/terms-api.e2e.spec.ts#the terms API, end to end in process › refuses a caller who holds no key in the tenant