Skip to content

ATS-MBR-STR-014Record policies for future package changes: Capability Test Specification

Markdown

ATS-MBR-STR-014

Record policies for future package changes: Capability Test Specification

Markdown
  • DocumentProposed

Planning

Proves capability
CAP-MBR-STR-014

Design

Executed by
TST-MBR-STR-046

KindAcceptance test setProduct areaMembershipModuleOrganizational Structure, Membership Configuration and TermsRevision2

Read atservices-membership 5994c270react-console baf6dae3

Coverage

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

Test Scenarios

4 scenarios proving CAP-MBR-STR-014; 2 bound to an existing test.

01 Policy list size and replacement identity are explicitboundaryapinegativetest
Proves
BR-CAP-MBR-STR-014-01
Preconditions
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
Source
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
02 A change side cannot specify two selectorsvalidationapinegativetest
Proves
BR-CAP-MBR-STR-014-02
Preconditions
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
Source
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
03 Package references protect stored change policiesinteractionapiproposed
Proves
BR-CAP-MBR-STR-012-08 BR-CAP-MBR-STR-014-01
Preconditions
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
04 Workspace authority gates this capabilitypermissionapinegativeproposed
Proves
BR-CAP-MBR-STR-019-02
Preconditions
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

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.