Skip to content

ATS-PFM-NOT-009Manage a personal notification inbox: Capability Test Specification

Markdown

ATS-PFM-NOT-009

Manage a personal notification inbox: Capability Test Specification

Markdown
  • DocumentProposed

KindAcceptance test setProduct areaPlatformModuleStaff Notifications and Association CommunicationsRevision2

Read atservices-platform ad3f6a65react-console baf6dae3

Coverage

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

Test Scenarios

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

01 Require personal notification permissionpermissionapinegativetest
Proves
BR-CAP-PFM-NOT-009-01
Preconditions
Prepare a clerk in a built-in role with no administrative permission; a caller without the use permission.
Steps
Retrieve the inbox as each.
Expected
A built-in clerk role can read its inbox; a caller without the permission fails every personal route.
Data
Use only records created and owned by this suite.
Bound to
services-platform:modules/notifications/tests/unit/permissions.spec.js#puts use at tier read, so every built-in console role carries it, and open to customers
services-platform:modules/notifications/tests/e2e/notifications.e2e.spec.js#refuses every own-notification route to a caller without platform.notifications.use
Source
services-platform:modules/notifications/tests/unit/permissions.spec.js#puts use at tier read, so every built-in console role carries it, and open to customers
02 Confine personal operations to the signed-in userpermissionapinegativetest
Proves
BR-CAP-PFM-NOT-009-02
Preconditions
Create an item owned by Jane, plus a colleague account and a portal account.
Steps
The colleague reads, marks and archives Jane's notice by id; the portal account reads its inbox.
Expected
Other users' items are not found and remain unchanged; portal callers are rejected.
Data
Use only records created and owned by this suite.
Bound to
services-platform:modules/notifications/tests/e2e/notifications.e2e.spec.js#finds nothing of another person’s notification, whoever asks
services-platform:modules/notifications/tests/e2e/notifications.e2e.spec.js#refuses a portal account every own-notification route, the portal being held
Source
services-platform:modules/notifications/tests/e2e/notifications.e2e.spec.js#finds nothing of another person’s notification, whoever asks
03 Filter and page the personal inboxvalidationapitest
Proves
BR-CAP-PFM-NOT-009-03
Preconditions
Prepare a recipient with notices across categories, some read, one archived.
Steps
Retrieve the list by default; unread only; one category; since an instant; archived; page through; send a bad cursor.
Expected
Views match their filters in descending creation order, with complete nonduplicated paging; an invalid cursor fails.
Data
Use only records created and owned by this suite.
Bound to
services-platform:modules/notifications/tests/integration/services/centre/notification-centre.integration.spec.js#lists the caller’s own notifications newest first with every element mapped
services-platform:modules/notifications/tests/e2e/notifications.e2e.spec.js#filters by unread, category and since, and pages by keyset
services-platform:modules/notifications/tests/e2e/notifications.e2e.spec.js#lists the archived by their own filter and leaves them out of the default list
services-platform:modules/notifications/tests/e2e/notifications.e2e.spec.js#refuses a bad filter, cursor or page size with a 400 naming the parameter
services-platform:modules/notifications/tests/integration/services/persistence/instances.queries.integration.spec.js#pages by keyset: each page continues where the last stopped, with no instance twice or lost
Source
services-platform:modules/notifications/tests/integration/services/centre/notification-centre.integration.spec.js#lists the caller’s own notifications newest first with every element mapped
04 Match unread lists to unread totalsinvariantapitest
Proves
BR-CAP-PFM-NOT-009-04 INV-DOM-PFM-NOT-003-08
Preconditions
Create two categories containing unread, read, archived and superseded items.
Steps
Retrieve the summary and the unread view.
Expected
Only unread, unarchived and applicable items contribute to either result.
Data
Use only records created and owned by this suite.
Bound to
services-platform:modules/notifications/tests/integration/services/persistence/instances.queries.integration.spec.js#leaves out of the unread view what the unread count leaves out: a notice that no longer applies
Source
services-platform:modules/notifications/tests/integration/services/centre/notification-centre.integration.spec.js#counts the unread, in all and by category
05 Update personal read and archive statetransitionapitest
Proves
BR-CAP-PFM-NOT-009-05
Preconditions
Give Jane a single inbox item in unread state.
Steps
Set it read twice, unread, archive, unarchive.
Expected
First-read time is preserved, unread restores counting, archive moves the item out of normal views and restoration returns it with the corresponding count.
Data
Use only records created and owned by this suite.
Bound to
services-platform:modules/notifications/tests/e2e/notifications.e2e.spec.js#marks one read and unread, archives and unarchives it, answering it each time
services-platform:modules/notifications/tests/integration/services/centre/notification-centre.integration.spec.js#archives it, taking it out of the default list and into the archived one, and brings it back
react-console:components/notifications/__tests__/notifications.test.tsx#marks a row read from its menu: the route is called and the unread count drops by one
Source
services-platform:modules/notifications/tests/e2e/notifications.e2e.spec.js#marks one read and unread, archives and unarchives it, answering it each time
06 Limit bulk reading to eligible personal itemsedgeapitest
Proves
BR-CAP-PFM-NOT-009-06
Preconditions
Prepare two categories with unread items before and after a cutoff, plus an archived item and a colleague-owned item.
Steps
Set all read before the instant; for one category; for everything; repeat.
Expected
Only matching unread items change and contribute to the returned count. Archived and colleague items remain untouched; repetition changes zero items.
Data
Use only records created and owned by this suite.
Bound to
services-platform:modules/notifications/tests/integration/services/persistence/instances.integration.spec.js#marks every unread instance read, but neither an archived instance nor another person’s
services-platform:modules/notifications/tests/integration/services/centre/notification-centre.integration.spec.js#marks everything unread read, the one that no longer applies included, and a repeat marks nothing
services-platform:modules/notifications/tests/e2e/notifications.e2e.spec.js#marks everything read, optionally before an instant, answering how many
Source
services-platform:modules/notifications/tests/integration/services/persistence/instances.integration.spec.js#marks every unread instance read, but neither an archived instance nor another person’s
07 Send a personal pipeline testrulebrowsertest
Proves
BR-CAP-PFM-NOT-009-07
Preconditions
Use signed-in sessions for Jane and another staff member.
Steps
Select Send Me a Test in Jane's session.
Expected
Jane receives the test item in her inbox and no other user receives it.
Data
Use only records created and owned by this suite.
Bound to
services-platform:modules/notifications/tests/e2e/notifications.e2e.spec.js#puts a test notification in the caller’s own list, through the whole pipeline, and nobody else’s
react-console:components/notifications/__tests__/notifications.test.tsx#Send Me a Test asks for a test, which arrives in the inbox
Source
services-platform:modules/notifications/tests/e2e/notifications.e2e.spec.js#puts a test notification in the caller’s own list, through the whole pipeline, and nobody else’s
08 Open an assignment item and update its countinteractionbrowsertest
Proves
AS-JNY-PFM-NOT-001-01 AS-JNY-PFM-NOT-001-02
Preconditions
Use Jane's clerk account and the Northeast Batch posting responsibility.
Steps
Run the journey's steps one to four.
Expected
One unread item contains its content and action. Opening reaches My Responsibilities and reduces unread count by one.
Data
The journey's own personas and Northeast unit.
Bound to
react-console:components/notifications/__tests__/notifications.test.tsx#marks a row read from its menu: the route is called and the unread count drops by one
Source
react-console:acceptance/notifications/playwright/journeys/inbox/NT-ACC-0001.spec.ts#NT-ACC-0001
09 Preserve existing attention and assignment behaviorinteractionbrowsertest
Proves
AS-JNY-PFM-NOT-001-04
Preconditions
Prepare the relevant milestone assignment walkthrough's data.
Steps
Save an assignment from responsibility Settings and inspect the header bell.
Expected
Assignment and Needs Your Attention retain their behavior; the intended notification section is still absent from the bell.
Data
The journey's own personas and Northeast unit.
Bound to
Source
react-console:acceptance/notifications/playwright/journeys/cross-application/NT-ACC-0300.spec.ts#NT-ACC-0300
10 Inbox organization and explanation follow responsibility withdrawalinteractionapiproposed
Proves
BR-CAP-PFM-NOT-009-05
Preconditions
Assign Jane a scoped responsibility and publish two matching contributions.
Steps
Read the explanation, mark the folded notice read and unread, end the assignment, and compare inbox lists with unread totals.
Expected
The explanation retains the selection reason. Read and archive choices affect only Jane, while the superseded assignment stays readable outside applicable unread results.
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-009-work-through-my-own-notifications.md#frontmatter,rhythm-v2-docs:specs/platform/notifications/planning/capabilities/CAP-PFM-NOT-010-understand-why-i-was-told.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-005-fold-quick-repeats-into-one-notice.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.