Skip to content

ATS-PFM-NOT-003Select eligible notification recipients: Capability Test Specification

Markdown

ATS-PFM-NOT-003

Select eligible notification recipients: 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 covered
  • Permission covered
  • Edge gap: FND-PFM-NOT-064
  • Failure gap: FND-PFM-NOT-064
  • Boundary covered
  • Concurrency gap: FND-PFM-NOT-064
  • Invariant covered
  • Interaction covered

Test Scenarios

9 scenarios proving CAP-PFM-NOT-003; 8 bound to an existing test.

01 Validate each audience selectionvalidationunitnegativetest
Proves
BR-CAP-PFM-NOT-003-01
Preconditions
Prepare a definition accepting user and responsibility.
Steps
Plan audiences with a role entry, an empty list, an unrecognized kind and a resource scope with no id.
Expected
Invalid entries identify their own list positions and processing records an invalid request.
Data
Use only records created and owned by this suite.
Bound to
services-platform:modules/notifications/tests/unit/audience-planner.spec.js#refuses a kind the definition does not accept, naming the kinds it does
services-platform:modules/notifications/tests/unit/audience-planner.spec.js#refuses a resource scope with no id, naming the reference
Source
services-platform:modules/notifications/tests/unit/audience-planner.spec.js#refuses a kind the definition does not accept, naming the kinds it does
02 Resolve responsibility holders at processing timeinteractionapitest
Proves
BR-CAP-PFM-NOT-003-02
Preconditions
Prepare a responsibility held by Jane; a published request for its holders not yet dispatched.
Steps
Transfer the responsibility from Jane to Sam before running dispatch.
Expected
The new holder Sam receives the notice; former holder Jane does not.
Data
Use only records created and owned by this suite.
Bound to
services-platform:modules/notifications/tests/integration/services/orchestration/resolve-audience.integration.spec.js#changes the people when the responsibility is reassigned between the publish and the dispatch
Source
services-platform:modules/notifications/tests/integration/services/orchestration/resolve-audience.integration.spec.js#changes the people when the responsibility is reassigned between the publish and the dispatch
03 Resolve scoped holders, delegates and fallbackruleapitest
Proves
BR-CAP-PFM-NOT-003-03
Preconditions
Jane holds Northeast Batch posting and delegates it to Sam; Lee holds it in a different unit, and a fallback holder is available.
Steps
Resolve the holders at Northeast; next with nobody with it at Northeast.
Expected
Jane and her delegate Sam qualify, while Lee in another unit does not. With no holder, the applicable fallback holder qualifies.
Data
Use only records created and owned by this suite.
Bound to
services-platform:modules/notifications/tests/integration/services/orchestration/resolve-audience.integration.spec.js#is the delegates of that unit’s holders too, worded as covering the responsibility
services-platform:modules/notifications/tests/integration/services/orchestration/resolve-audience.integration.spec.js#falls back to the fallback’s holders when nobody holds it at that unit, and not to the holder of another unit
Source
services-platform:modules/notifications/tests/integration/services/orchestration/resolve-audience.integration.spec.js#is the holders of that unit and not the holder of another unit
04 Resolve active role and permission audiencesruleapitest
Proves
BR-CAP-PFM-NOT-003-04
Preconditions
Prepare a built-in role with two active holders; a permission granted by one role.
Steps
Resolve the role; the permission; a absent role; an ungranted permission.
Expected
Existing active role holders and permission grantees qualify; missing roles and ungranted permissions produce empty audiences.
Data
Use only records created and owned by this suite.
Bound to
Source
services-platform:modules/notifications/tests/integration/services/orchestration/resolve-audience.integration.spec.js#is the active holders of the built-in role at the tenant
05 Union recipients with exclusions and actor controlinvariantunittest
Proves
BR-CAP-PFM-NOT-003-05
Preconditions
Prepare a audience of two entries overlapping on one person, an exclusion and the actor among them.
Steps
Evaluate recipient selection twice, excluding the actor first and enabling actor inclusion next.
Expected
Every selected user occurs once. Explicit exclusions and the actor are removed unless actor inclusion is requested.
Data
Use only records created and owned by this suite.
Bound to
services-platform:modules/notifications/tests/unit/audience-planner.spec.js#is the union of what the lookups found, once each, in order of user id
services-platform:modules/notifications/tests/unit/audience-planner.spec.js#leaves out the actor, who is not told of their own act
Source
services-platform:modules/notifications/tests/unit/audience-planner.spec.js#is the union of what the lookups found, once each, in order of user id
06 Enforce the whole-request recipient limitboundaryapinegativetest
Proves
BR-CAP-PFM-NOT-003-06 INV-DOM-PFM-NOT-003-05
Preconditions
Prepare one two-hundred-person audience and another containing two hundred and one people.
Steps
Process a publication for each audience through the notification pipeline.
Expected
Two hundred recipients succeed. Two hundred and one makes the whole request invalid and inspectable in History.
Data
Use only records created and owned by this suite.
Bound to
services-platform:modules/notifications/tests/unit/audience-planner.spec.js#does not count the excluded and the actor towards the 200
Source
services-platform:modules/notifications/tests/unit/audience-planner.spec.js#accepts exactly 200 people
07 Exclude ineligible and cross-customer userspermissionapinegativetest
Proves
BR-CAP-PFM-NOT-003-07 INV-DOM-PFM-NOT-003-04
Preconditions
Prepare a request naming a member, a user of another customer, an invited user and a portal user.
Steps
Process the queued publication.
Expected
Only the eligible member receives a notice; isolation refusals identify the excluded candidates.
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#drops a user of another customer, an invited user and a portal user, recording isolation_refused
services-platform:modules/notifications/tests/integration/services/centre/hq-notifications.integration.spec.js#leaves out an invited user, a portal user, a user of another customer and an id that is nobody’s
Source
services-platform:modules/notifications/tests/integration/services/orchestration/orchestrate-request.integration.spec.js#drops a user of another customer, an invited user and a portal user, recording isolation_refused
08 Retain empty-audience outcomestransitionapinegativetest
Proves
BR-CAP-PFM-NOT-003-08
Preconditions
Prepare a responsibility nobody has; a request naming only outsiders.
Steps
Process each queued audience fixture.
Expected
Both requests finish with no recipients; the isolated case also retains its refusal information.
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#notifies nobody when everyone named is outside the organization, recording no_recipients with the refusal
Source
services-platform:modules/notifications/tests/integration/services/orchestration/resolve-audience.integration.spec.js#is nobody when nobody holds it and nothing covers it, settling no_recipients
09 Current audience selection is explained in both personal and workspace viewsinteractionapiproposed
Proves
BR-CAP-PFM-NOT-003-02
Preconditions
Create a scoped responsibility held by Jane, with Sam as the later holder and a foreign-workspace candidate.
Steps
Transfer the responsibility before processing; process the request; read personal detail and administrator History; publish an explicit assignment to Sam.
Expected
Sam receives the current-holder notice and its selection explanation. The foreign candidate receives nothing, and History retains the exclusion and the explicit assignment request.
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-003-reach-the-right-people-and-only-people-of-the-organization.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-011-see-what-the-organization-told-whom.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.