Skip to content

ATS-PFM-NOT-005Combine repeated events into one notice: Capability Test Specification

Markdown

ATS-PFM-NOT-005

Combine repeated events into one notice: Capability Test Specification

Markdown
  • DocumentProposed

KindAcceptance test setProduct areaPlatformModuleStaff Notifications and Association CommunicationsRevision2

Read atservices-platform ad3f6a65react-console baf6dae3

Coverage

  • Rule covered
  • Transition covered
  • Validation gap: FND-PFM-NOT-066
  • Permission not-applicable
  • Edge covered
  • Failure gap: FND-PFM-NOT-066
  • Boundary covered
  • Concurrency covered
  • Invariant covered
  • Interaction covered

Test Scenarios

10 scenarios proving CAP-PFM-NOT-005; 8 bound to an existing test.

01 Collapse matching bursts while separating other eventsruleapitest
Proves
BR-CAP-PFM-NOT-005-01
Preconditions
Prepare a definition with the default window.
Steps
Assign the identical responsibility to Jane five times within two minutes; repeat with another record, another person and a zero window.
Expected
Five contributions share one item and its count; unmatched records and recipients receive separate items.
Data
Use only records created and owned by this suite.
Bound to
services-platform:modules/notifications/tests/integration/services/orchestration/cancel-and-supersede.integration.spec.js#folds five requests into one notification carrying the latest data and the count
services-platform:modules/notifications/tests/unit/collapsing.spec.js#takes in an instance created within the definition’s window
Source
services-platform:modules/notifications/tests/integration/services/orchestration/cancel-and-supersede.integration.spec.js#folds five requests into one notification carrying the latest data and the count
02 Create a fresh item after reading or archivingedgeapitest
Proves
BR-CAP-PFM-NOT-005-02
Preconditions
Prepare a earlier notice inside the window.
Steps
Retrieve it, next repeat; archive it, next repeat; supersede it, next repeat.
Expected
Each subsequent request creates another unread notice rather than changing the old item.
Data
Use only records created and owned by this suite.
Bound to
Source
services-platform:modules/notifications/tests/integration/services/orchestration/cancel-and-supersede.integration.spec.js#makes a new, unread notification when the one it would fold into was read
03 Separate explicit resource scopesboundaryapitest
Proves
BR-CAP-PFM-NOT-005-03
Preconditions
Use matching responsibility assignments scoped to two distinct units.
Steps
Submit both assignments before the collapse interval ends.
Expected
Each unit has its own notice; an unscoped contribution can join a compatible scoped item.
Data
Use only records created and owned by this suite.
Bound to
Source
services-platform:modules/notifications/tests/integration/services/orchestration/cancel-and-supersede.integration.spec.js#folds requests of the same scope and keeps requests of another scope apart
04 Retain latest contribution details and bounded lineageboundaryapitest
Proves
BR-CAP-PFM-NOT-005-04
Preconditions
Prepare a notice that folded requests.
Steps
Add more contributions, replaying one and exceeding fifty distinct requests overall.
Expected
The item uses the latest data, retains each contribution once and keeps only the latest fifty references.
Data
Use only records created and owned by this suite.
Bound to
services-platform:modules/notifications/tests/unit/collapsing.spec.js#remembers the requests an instance took in, oldest first
services-platform:modules/notifications/tests/unit/collapsing.spec.js#remembers a request once, however often it is folded in
services-platform:modules/notifications/tests/integration/services/orchestration/cancel-and-supersede.integration.spec.js#folds five requests into one notification carrying the latest data and the count
Source
services-platform:modules/notifications/tests/unit/collapsing.spec.js#remembers the requests an instance took in, oldest first
05 Serialize matching collapse identitiesconcurrencyapitest
Proves
BR-CAP-PFM-NOT-005-05 INV-DOM-PFM-NOT-003-12
Preconditions
Prepare ten matching identity requests and a request with a different collapse identity.
Steps
Dispatch them at the identical moment.
Expected
Nine matching contributions share one item; a distinct identity acquires a separate transaction lock.
Data
Use only records created and owned by this suite.
Bound to
services-platform:modules/notifications/tests/integration/services/orchestration/cancel-and-supersede.integration.spec.js#folds ten requests dispatched at the same moment into one notification of collapsed count nine
services-platform:modules/notifications/tests/integration/services/orchestration/cancel-and-supersede.integration.spec.js#makes a request for the identity another transaction holds wait until it commits
Source
services-platform:modules/notifications/tests/integration/services/orchestration/cancel-and-supersede.integration.spec.js#folds ten requests dispatched at the same moment into one notification of collapsed count nine
06 Withdraw contributions without losing remaining worktransitionapitest
Proves
BR-CAP-PFM-NOT-005-06
Preconditions
Prepare a notice that folded three requests.
Steps
Cancel the first; next the newest; next the rest.
Expected
The count decreases, remaining renderable content replaces the newest withdrawn content, and removing the final contribution supersedes the item.
Data
Use only records created and owned by this suite.
Bound to
services-platform:modules/notifications/tests/integration/services/orchestration/cancel-and-supersede.integration.spec.js#keeps the notification when the first of its requests ends, handing it to the next and dropping the count
services-platform:modules/notifications/tests/integration/services/orchestration/cancel-and-supersede.integration.spec.js#keeps the notification when a request it only folded ends, and supersedes it when the last one ends
services-platform:modules/notifications/tests/integration/services/orchestration/cancel-and-supersede.integration.spec.js#withdraws only the notice of the assignment that ended when two units were told apart
Source
services-platform:modules/notifications/tests/integration/services/orchestration/cancel-and-supersede.integration.spec.js#keeps the notification when the first of its requests ends, handing it to the next and dropping the count
07 Deduplicate occurrence noticesinvariantapitest
Proves
BR-CAP-PFM-NOT-005-07 INV-DOM-PFM-NOT-003-03
Preconditions
Prepare two independently submitted requests identifying the same occurrence.
Steps
Process both occurrence requests.
Expected
Every recipient has at most one notice for the occurrence.
Data
Use only records created and owned by this suite.
Bound to
services-platform:modules/notifications/tests/integration/db/notification-instances.table.integration.spec.js#holds one key per tenant across months: the key table conflicts on the same key in two months
Source
services-platform:modules/notifications/tests/integration/services/orchestration/orchestrate-request.integration.spec.js#makes one instance for one occurrence however many requests name it
08 Collapse a burst through the pipelineinteractionapitest
Proves
AS-JNY-PFM-NOT-005-03
Preconditions
Use five assignment events occurring within a two-minute interval.
Steps
Execute the full notification processing path.
Expected
The burst produces one notice displaying its contribution count.
Data
The journey's own personas and Northeast unit.
Bound to
Source
react-console:acceptance/notifications/playwright/journeys/pipeline/NT-ACC-0205.spec.ts#NT-ACC-0205
09 Retain content when replacement rendering is unavailableedgeapiproposed
Proves
BR-CAP-PFM-NOT-005-08
Preconditions
Prepare a live folded notice whose definition has a link field, and another whose recipient loses eligibility.
Steps
Withdraw the newest contributing request from each notice.
Expected
Contribution count and ownership change while the existing rendered wording remains visible.
Data
A live folded notice whose definition has a link field, and another whose recipient loses eligibility.
Source
services-platform:modules/notifications/services/orchestration/orchestrate-request.ts:rerenderMessage
10 Read and withdrawal actions change subsequent foldinginteractionapiproposed
Proves
BR-CAP-PFM-NOT-005-06
Preconditions
Give Jane two same-record contributions and one notice in another scope.
Steps
Process the burst, read its folded item, publish another contribution and withdraw the original requests one at a time.
Expected
The read item does not absorb the later event. Withdrawal removes only unsupported contributions; the other scope remains visible and counted.
Data
A suite-owned workspace, named staff accounts and unique occurrence keys; external adapters record attempts without shared writes.
Source
rhythm-v2-docs:specs/platform/notifications/planning/capabilities/CAP-PFM-NOT-005-fold-quick-repeats-into-one-notice.md#frontmatter,rhythm-v2-docs:specs/platform/notifications/planning/capabilities/CAP-PFM-NOT-006-withdraw-or-expire-a-notice-that-no-longer-applies.md#frontmatter,rhythm-v2-docs:specs/platform/notifications/planning/capabilities/CAP-PFM-NOT-009-work-through-my-own-notifications.md#frontmatter

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.