Skip to content

ATS-MBR-MEM-019Report on membership now and month by month: Capability Test Specification

Markdown

ATS-MBR-MEM-019

Report on membership now and month by month: Capability Test Specification

Markdown
  • DocumentProposed

KindAcceptance test setProduct areaMembershipModuleMemberships, Applications and Membership BillingRevision2

Read atservices-membership 5994c270react-console baf6dae3

Coverage

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

Test Scenarios

12 scenarios proving CAP-MBR-MEM-019; 10 bound to an existing test.

01 The live datasets answer today's status, type, episodes and unitsruleapitest
Proves
BR-CAP-MBR-MEM-019-01
Preconditions
The well-known FAA workspace fixtures, or a workspace the test builds from them.
Steps
[ { "do": "Query the memberships and affiliation views as the application role.", "expect": "Today's status, current type, episode count, primary unit by type and every unit with its ancestors once.", "provenance": "test", "source": [ "services-membership:modules/memberships/tests/integration/db/membership-functions.integration.spec.ts#answers the query layer’s picks from memberships_for_queries: status today, current type, episode count", "services-membership:modules/memberships/tests/integration/services/affiliations.integration.spec.ts#answers the dataset’s views as the application role: the primary unit today, every unit with its ancestors once" ] } ]
Expected
Today's status, current type, episode count, primary unit by type and every unit with its ancestors once.
Data
FAA programs, packages, units and members from the integration seed.
Bound to
Source
services-membership:modules/memberships/tests/integration/db/membership-functions.integration.spec.ts#answers the query layer’s picks from memberships_for_queries: status today, current type, episode count
02 A month's snapshot is known at the month's endboundaryapitest
Proves
BR-CAP-MBR-MEM-019-02
Preconditions
The well-known FAA workspace fixtures, or a workspace the test builds from them.
Steps
[ { "do": "Plan, dispatch and run September for a workspace with a member entered in October.", "expect": "September is planned once, published as known at its end in the workspace's zone, and does not hold the October member.", "provenance": "test", "source": [ "services-membership:modules/snapshots/tests/integration/snapshot-pipeline.integration.spec.ts#plans September’s first version for the tenant, once", "services-membership:modules/snapshots/tests/integration/snapshot-pipeline.integration.spec.ts#publishes the planned run as the captured version, known at the month’s end in the tenant’s zone", "services-membership:modules/snapshots/tests/integration/snapshot-pipeline.integration.spec.ts#captures nothing recorded after the month’s end: the membership entered in October is not in September" ] } ]
Expected
September is planned once, published as known at its end in the workspace's zone, and does not hold the October member.
Data
FAA programs, packages, units and members from the integration seed.
Bound to
Source
services-membership:modules/snapshots/tests/integration/snapshot-pipeline.integration.spec.ts#plans September’s first version for the tenant, once
03 Each member row is described by its term, and ties by their tree thenruleapitest
Proves
BR-CAP-MBR-MEM-019-03
Preconditions
The well-known FAA workspace fixtures, or a workspace the test builds from them.
Steps
[ { "do": "Generate September for FAA.", "expect": "Each row describes the covering, latest or next term; Jo's two chapters are filed with the Eastern Region among their ancestors.", "provenance": "test", "source": [ "services-membership:modules/snapshots/tests/integration/membership-snapshot.integration.spec.ts#describes each member row by its term: the covering one, else the latest before, else the first after", "services-membership:modules/snapshots/tests/integration/membership-snapshot.integration.spec.ts#files each affiliation with its unit and every ancestor the unit had at the period end, nearest first", "services-membership:modules/snapshots/tests/integration/membership-snapshot.integration.spec.ts#files Jo’s two chapters with the Eastern Region among their ancestors" ] } ]
Expected
Each row describes the covering, latest or next term; Jo's two chapters are filed with the Eastern Region among their ancestors.
Data
FAA programs, packages, units and members from the integration seed.
Bound to
Source
services-membership:modules/snapshots/tests/integration/membership-snapshot.integration.spec.ts#describes each member row by its term: the covering one, else the latest before, else the first after
04 Counts group the rows and count the month's movementsruleapiproposed
Proves
BR-CAP-MBR-MEM-019-04
Preconditions
The well-known FAA workspace fixtures, or a workspace the test builds from them.
Steps
[ { "do": "Generate a month with joins, renewals, lapses and reinstatements.", "expect": "Groups by type, package, status, grace and origin, with each movement counted.", "provenance": "proposed", "source": "services-membership:modules/snapshots/tests/integration/membership-snapshot.integration.spec.ts#counts the member rows by type, package, status, grace and origin" } ]
Expected
Groups by type, package, status, grace and origin, with each movement counted.
Data
FAA programs, packages, units and members from the integration seed.
Source
services-membership:modules/snapshots/tests/integration/membership-snapshot.integration.spec.ts#counts the member rows by type, package, status, grace and origin
05 A failing check publishes nothingfailureapinegativetest
Proves
BR-CAP-MBR-MEM-019-05 INV-DOM-MBR-MEM-006-05
Preconditions
The well-known FAA workspace fixtures, or a workspace the test builds from them.
Steps
[ { "do": "Run a month whose counts do not add up.", "expect": "The run fails, nothing is published, and the earlier version stays current.", "provenance": "test", "source": [ "services-membership:modules/snapshots/tests/integration/membership-snapshot.integration.spec.ts#fails the run on the counts check, publishes nothing, and leaves the current version current", "services-membership:modules/snapshots/tests/unit/membership-snapshot-checks.spec.ts#fails the counts check when a group’s count is not its member rows", "services-membership:modules/snapshots/tests/unit/membership-snapshot-checks.spec.ts#fails the affiliation check when an affiliation row has no member row" ] } ]
Expected
The run fails, nothing is published, and the earlier version stays current.
Data
FAA programs, packages, units and members from the integration seed.
Bound to
Source
services-membership:modules/snapshots/tests/integration/membership-snapshot.integration.spec.ts#fails the run on the counts check, publishes nothing, and leaves the current version current
06 Reruns reproduce a month or restate it by exactly the correctionsinvariantapitest
Proves
BR-CAP-MBR-MEM-019-06 INV-DOM-MBR-MEM-006-06
Preconditions
The well-known FAA workspace fixtures, or a workspace the test builds from them.
Steps
[ { "do": "Rerun September with the original instant and with a later one after a correction.", "expect": "Identical rows, then rows differing only by the corrected member; each published as the next version.", "provenance": "test", "source": [ "services-membership:modules/snapshots/tests/integration/membership-snapshot.integration.spec.ts#writes identical member, affiliation and count rows with the original known_at", "services-membership:modules/snapshots/tests/integration/membership-snapshot.integration.spec.ts#differs, with a later known_at, by exactly the corrected membership", "services-membership:modules/snapshots/tests/integration/membership-snapshot.integration.spec.ts#publishes each rerun as the next version and keeps the earlier ones readable", "services-membership:tests/acceptance/history/MBR-ACC-0548.acceptance.ts#MBR-ACC-0548" ] } ]
Expected
Identical rows, then rows differing only by the corrected member; each published as the next version.
Data
FAA programs, packages, units and members from the integration seed.
Bound to
Source
services-membership:modules/snapshots/tests/integration/membership-snapshot.integration.spec.ts#writes identical member, affiliation and count rows with the original known_at
07 The workspace chooses what each month freezesruleapitest
Proves
BR-CAP-MBR-MEM-019-07
Preconditions
The well-known FAA workspace fixtures, or a workspace the test builds from them.
Steps
[ { "do": "Configure a captured rank and a reconstructed membership field, reorder them and drop one.", "expect": "The run freezes the configured characteristics; a dropped one is deactivated.", "provenance": "test", "source": [ "services-membership:tests/e2e/s10-historical-dimension.e2e.spec.ts#configures rank__c as a captured dimension of the tenant’s snapshots", "services-membership:tests/acceptance/history/MBR-ACC-0543.acceptance.ts#MBR-ACC-0543" ] } ]
Expected
The run freezes the configured characteristics; a dropped one is deactivated.
Data
FAA programs, packages, units and members from the integration seed.
Bound to
Source
services-membership:tests/e2e/s10-historical-dimension.e2e.spec.ts#configures rank__c as a captured dimension of the tenant’s snapshots
08 Captured values are taken once and carried forwardedgeunittest
Proves
BR-CAP-MBR-MEM-019-08
Preconditions
The well-known FAA workspace fixtures, or a workspace the test builds from them.
Steps
[ { "do": "Plan the capture for the latest month, a rerun of a published month, and a back-fill of an older month.", "expect": "Read live, carried forward, not captured.", "provenance": "test", "source": [ "services-membership:modules/snapshots/tests/unit/dimension-plan.spec.ts#reads the live contact for the first capture of the latest completed month", "services-membership:modules/snapshots/tests/unit/dimension-plan.spec.ts#carries the superseded version’s rows forward on a rerun of a published month", "services-membership:modules/snapshots/tests/unit/dimension-plan.spec.ts#captures nothing for an older month with no published version: today’s value is not the period end’s", "services-membership:tests/e2e/s10-historical-dimension.e2e.spec.ts#keeps September’s rank as captured when it is rerun after the contact changed" ] } ]
Expected
Read live, carried forward, not captured.
Data
FAA programs, packages, units and members from the integration seed.
Bound to
Source
services-membership:modules/snapshots/tests/unit/dimension-plan.spec.ts#reads the live contact for the first capture of the latest completed month
09 Reports read the current published version onlyinvariantapitest
Proves
BR-CAP-MBR-MEM-019-09
Preconditions
The well-known FAA workspace fixtures, or a workspace the test builds from them.
Steps
[ { "do": "Read the published views after two versions of a month.", "expect": "Only the current version is read, inside the workspace.", "provenance": "test", "source": [ "services-membership:modules/snapshots/tests/integration/membership-snapshot.integration.spec.ts#reads the current published version alone through the published view, in the tenant" ] } ]
Expected
Only the current version is read, inside the workspace.
Data
FAA programs, packages, units and members from the integration seed.
Bound to
Source
services-membership:modules/snapshots/tests/integration/membership-snapshot.integration.spec.ts#reads the current published version alone through the published view, in the tenant
10 A month is filed under its own month-end treeinteractionapitest
Proves
BR-CAP-MBR-MEM-019-10
Preconditions
The well-known FAA workspace fixtures, or a workspace the test builds from them.
Steps
[ { "do": "Restate September after Atlanta moved in October.", "expect": "Atlanta is still under the Eastern Region in September.", "provenance": "test", "source": [ "services-membership:tests/e2e/s09-restructuring.e2e.spec.ts#still files Atlanta under the Eastern Region in a September restated after the move: the period end’s tree", "services-membership:tests/e2e/s09-restructuring.e2e.spec.ts#still holds Atlanta among the Eastern Region’s descendants as of the period end" ] } ]
Expected
Atlanta is still under the Eastern Region in September.
Data
FAA programs, packages, units and members from the integration seed.
Bound to
Source
services-membership:tests/e2e/s09-restructuring.e2e.spec.ts#still files Atlanta under the Eastern Region in a September restated after the move: the period end’s tree
11 Snapshot rows are purged only from a workspace being deletedinvariantapinegativetest
Proves
BR-CAP-MBR-MEM-019-13 INV-DOM-MBR-MEM-006-09
Preconditions
The well-known FAA workspace fixtures, or a workspace the test builds from them.
Steps
[ { "do": "Purge a live workspace, then one being deleted.", "expect": "The first is refused before any row goes; the second removes the rows in batches.", "provenance": "test", "source": [ "services-membership:modules/snapshots/tests/integration/membership-snapshot.integration.spec.ts#refuses to purge the tenant while Platform holds it active, before any row is removed (DEF-MBR-0010)", "services-membership:modules/snapshots/tests/integration/membership-snapshot.integration.spec.ts#removes the tenant’s snapshot rows through membership.snapshots, in batches" ] } ]
Expected
The first is refused before any row goes; the second removes the rows in batches.
Data
FAA programs, packages, units and members from the integration seed.
Bound to
Source
services-membership:modules/snapshots/tests/integration/membership-snapshot.integration.spec.ts#refuses to purge the tenant while Platform holds it active, before any row is removed (DEF-MBR-0010)
12 Freeze resolved standing at month endinteractionapiproposed
Proves
BR-CAP-MBR-MEM-005-01 BR-CAP-MBR-MEM-019-02
Preconditions
A member expires near month end and the status cache is stale.
Steps
[ { "do": "Generate the monthly snapshot and compare its member row with the resolver at month end.", "expect": "The row has the month-end standing rather than the stale cached value.", "provenance": "proposed", "source": [ "services-membership:modules/memberships/tests/integration/db/membership-functions.integration.spec.ts#answers Sam grace, lapsed, then active across the lapse and rejoin (scenario 4)", "services-membership:modules/snapshots/tests/integration/snapshot-pipeline.integration.spec.ts#plans September’s first version for the tenant, once" ] } ]
Expected
The row has the month-end standing rather than the stale cached value.
Data
An isolated workspace with the specified membership, package, chapter and partner-port fixtures.
Source
services-membership:modules/memberships/tests/integration/db/membership-functions.integration.spec.ts#answers Sam grace, lapsed, then active across the lapse and rejoin (scenario 4),services-membership:modules/snapshots/tests/integration/snapshot-pipeline.integration.spec.ts#plans September’s first version for the tenant, once

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.