Skip to content

ATS-PFM-NOT-006Remove notices that have become stale: Capability Test Specification

Markdown

ATS-PFM-NOT-006

Remove notices that have become stale: Capability Test Specification

Markdown
  • DocumentProposed

KindAcceptance test setProduct areaPlatformModuleStaff Notifications and Association CommunicationsRevision2

Read atservices-platform ad3f6a65react-console baf6dae3

Coverage

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

Test Scenarios

10 scenarios proving CAP-PFM-NOT-006; 9 bound to an existing test.

01 Cancel before processing and permit later publicationtransitionapinegativetest
Proves
BR-CAP-PFM-NOT-006-01
Preconditions
Prepare a publish held by a not-before time.
Steps
Cancel it by its key; by its supersede key with the publish arriving after; next publish a second time after the cancel.
Expected
The matched pending request becomes cancelled without notices; a later publication is delivered.
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#leaves nobody told and records the request cancelled when the cancel names the publish’s key
services-platform:modules/notifications/tests/integration/services/orchestration/cancel-and-supersede.integration.spec.js#leaves nobody told when the cancel names only the supersede key, even when the publish arrives after it
services-platform:modules/notifications/tests/integration/services/orchestration/cancel-and-supersede.integration.spec.js#records the cancel of a request that has no record as a cancelled request under the publish’s id
Source
services-platform:modules/notifications/tests/integration/services/orchestration/cancel-and-supersede.integration.spec.js#leaves nobody told and records the request cancelled when the cancel names the publish’s key
02 Supersede delivered items without erasing themtransitionapitest
Proves
BR-CAP-PFM-NOT-006-02
Preconditions
Jane's inbox contains a delivered assignment item that remains unread.
Steps
End the source assignment, process its cancellation twice and attempt cancellation of an already-settled request.
Expected
The item remains readable but inapplicable and excluded from unread totals. Repeated cancellation and settled-request cancellation leave state unchanged.
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#marks the instance superseded, leaves it readable and takes it out of the unread count
Source
services-platform:modules/notifications/tests/integration/services/orchestration/cancel-and-supersede.integration.spec.js#marks the instance superseded, leaves it readable and takes it out of the unread count
03 Stop pending delivery without recalling completed sendsinteractionapitest
Proves
BR-CAP-PFM-NOT-006-03
Preconditions
Prepare a notice with one delivery queued and one already sent.
Steps
Submit a withdrawal for the originating request.
Expected
Waiting delivery work is cancelled, sent delivery remains sent and the notice becomes superseded.
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#cancels the queued delivery and its work row, and does not recall one that already left
Source
services-platform:modules/notifications/tests/integration/services/orchestration/cancel-and-supersede.integration.spec.js#cancels the queued delivery and its work row, and does not recall one that already left
04 Replace only eligible earlier occurrencestransitionapitest
Proves
BR-CAP-PFM-NOT-006-04
Preconditions
Prepare a open request of an occurrence-superseding definition.
Steps
Publish a later request with the identical supersede key; repeat for a non-superseding definition; repeat with a rejected later request.
Expected
Only the valid later request with replacement enabled supersedes the earlier request.
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#supersedes the earlier request of a definition whose scope is the occurrence, and tells the person the new one
services-platform:modules/notifications/tests/integration/services/orchestration/cancel-and-supersede.integration.spec.js#leaves the earlier request alone when the definition does not supersede by occurrence
Source
services-platform:modules/notifications/tests/integration/services/orchestration/cancel-and-supersede.integration.spec.js#supersedes the earlier request of a definition whose scope is the occurrence, and tells the person the new one
05 Record stale requests as expiredboundaryapinegativetest
Proves
BR-CAP-PFM-NOT-006-05
Preconditions
Prepare a request with a past expiry; one older than its definition's window.
Steps
Process the two expiry fixtures.
Expected
Both expired requests are retained with expiry outcomes and produce no notices.
Data
Use only records created and owned by this suite.
Bound to
services-platform:modules/notifications/tests/integration/services/orchestration/orchestrate-request.integration.spec.js#expires a request older than its definition’s expires_after from the instant the producer wrote it
Source
services-platform:modules/notifications/tests/integration/services/orchestration/orchestrate-request.integration.spec.js#expires a request published after its expiry
06 Wait until the not-before instantboundaryapitest
Proves
BR-CAP-PFM-NOT-006-06
Preconditions
Prepare a request with a not-before two minutes ahead.
Steps
Process it now; next once due.
Expected
Before due time, processing stores no request result and returns the work; once due, it processes normally.
Data
Use only records created and owned by this suite.
Bound to
services-platform:modules/notifications/tests/integration/services/orchestration/orchestrate-request.integration.spec.js#gives back a request that is not due yet, writing nothing, never processing it early
services-platform:modules/notifications/tests/integration/services/dispatch/process-request-batch.integration.spec.js#gives back a request that is not due with its visibility extended to the moment it is due
Source
services-platform:modules/notifications/tests/integration/services/orchestration/orchestrate-request.integration.spec.js#gives back a request that is not due yet, writing nothing, never processing it early
07 Settle expired requests after pending work endstransitionapitest
Proves
BR-CAP-PFM-NOT-006-07
Preconditions
Use open requests on both sides of expiry, including a request with delivery still pending.
Steps
Execute scheduled nightly reconciliation for the workspace.
Expected
Expired eligible requests settle and unsent deliveries expire; the still-open request remains open.
Data
Use only records created and owned by this suite.
Bound to
services-platform:modules/notifications/tests/integration/services/reconcile/reconcile-tenant.integration.spec.js#expires the unsent delivery of a request past its expiry, the notification with it, and settles the request
services-platform:modules/notifications/tests/integration/services/reconcile/reconcile-tenant.integration.spec.js#settles a request past its expiry whose notification was delivered, so a late cancel reaches nothing
Source
services-platform:modules/notifications/tests/integration/services/reconcile/reconcile-tenant.integration.spec.js#expires the unsent delivery of a request past its expiry, the notification with it, and settles the request
08 Recheck queued work before sendingedgeapinegativetest
Proves
BR-CAP-PFM-NOT-006-08
Preconditions
Prepare a queued chat delivery.
Steps
Supersede its notice, next deliver; expire its request, next deliver.
Expected
Superseded work is cancelled and stale work expires, with no provider send.
Data
Use only records created and owned by this suite.
Bound to
services-platform:modules/notifications/tests/integration/services/dispatch/deliver-delivery.integration.spec.js#cancels, not sends, a delivery whose notification was superseded after it was queued
Source
services-platform:modules/notifications/tests/integration/services/dispatch/deliver-delivery.integration.spec.js#cancels, not sends, a delivery whose notification was superseded after it was queued
09 Withdraw items before and after console deliveryinteractionapitest
Proves
AS-JNY-PFM-NOT-002-01 AS-JNY-PFM-NOT-002-02
Preconditions
Use Jane's clerk account in a nonproduction environment with the suite's delay header enabled.
Steps
Exercise the acceptance workflow end to end.
Expected
The delivered item remains inapplicable and uncounted; the undispatched item never appears and its request records cancellation.
Data
The journey's own personas and Northeast unit.
Bound to
Source
react-console:acceptance/notifications/playwright/journeys/inbox/NT-ACC-0004.spec.ts#NT-ACC-0004
10 Withdrawal closes pending delivery while preserving remaining historyinteractionapiproposed
Proves
BR-CAP-PFM-NOT-006-03
Preconditions
Prepare a folded console item, one queued external delivery and an explicit assignment with a delayed notice.
Steps
Withdraw one folded contributor, end the delayed assignment, run delivery and reconciliation, then inspect the remaining items.
Expected
The surviving contributor keeps its notice. Withdrawn external work does not send, the delayed assignment notice never appears, and reconciled requests cannot be withdrawn again.
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-006-withdraw-or-expire-a-notice-that-no-longer-applies.md#frontmatter,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-008-keep-notifications-whole-when-part-of-the-pipeline-fails.md#frontmatter,rhythm-v2-docs:specs/platform/notifications/planning/capabilities/CAP-PFM-NOT-014-tell-staff-about-changes-to-their-own-responsibilities.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.