Skip to content

ATS-PFM-ELG-020Adjust shared attention and personal visibility: Capability Test Specification

Markdown

ATS-PFM-ELG-020

Adjust shared attention and personal visibility: Capability Test Specification

Markdown
  • DocumentProposed

KindAcceptance test setProduct areaPlatformModuleEligibility, Responsibilities and AttentionRevision3

Read atservices-platform ad3f6a65react-console baf6dae3

Coverage

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

Test Scenarios

11 scenarios proving CAP-PFM-ELG-020; 9 bound to an existing test.

01 Separate catalogue and settings authoritypermissionapinegativetest
Proves
BR-CAP-PFM-ELG-020-01
Preconditions
Readers and managers are available.
Steps
Inspect catalogue and settings and attempt changes.
Expected
Both read the catalogue, while only managers read or replace settings.
Data
No fixtures beyond the described setup.
Bound to
services-platform:modules/attention/tests/e2e/attention.e2e.spec.js#lists the catalog with the tenant’s settings merged in
services-platform:modules/attention/tests/e2e/attention.e2e.spec.js#refuses the settings to a caller without manage, with 403
services-platform:modules/attention/tests/e2e/attention.e2e.spec.js#answers 404 for a definition nobody registered
Source
services-platform:modules/attention/tests/e2e/attention.e2e.spec.js#lists the catalog with the tenant’s settings merged in
02 Restrict surface configurationruleapinegativetest
Proves
BR-CAP-PFM-ELG-020-02
Preconditions
A kind supports console only.
Steps
Choose portal and then disable the kind.
Expected
Portal is rejected and disablement succeeds.
Data
No fixtures beyond the described setup.
Bound to
services-platform:modules/attention/tests/integration/services/persistence/items.queries.integration.spec.js#says nothing_enabled where the tenant has disabled every definition on the console
Source
services-platform:modules/attention/tests/integration/services/persistence/settings.integration.spec.js#refuses a surface the definition does not have
03 Reject settings outside boundsboundaryapinegativetest
Proves
BR-CAP-PFM-ELG-020-03
Preconditions
A bounded kind is not rank-adjustable.
Steps
Try excessive values, rank adjustment and an adjustment of eleven.
Expected
Each failure identifies the unsupported value or change.
Data
No fixtures beyond the described setup.
Bound to
services-platform:modules/attention/tests/integration/services/persistence/settings.integration.spec.js#refuses a rank adjustment on a definition that is not tenant-adjustable
services-platform:modules/attention/tests/unit/request-schemas.spec.js#refuses a tenant rank adjustment outside -10..10, naming the field
services-platform:modules/attention/tests/e2e/attention.e2e.spec.js#refuses a value outside its declared bounds with 400
Source
services-platform:modules/attention/tests/integration/services/persistence/settings.integration.spec.js#refuses a value outside its declared bounds, naming it
04 Validate template presentationvalidationapinegativetest
Proves
BR-CAP-PFM-ELG-020-04
Preconditions
A kind supplies example facts.
Steps
Try unknown-fact wording, excessive title length, portal wording and a valid override.
Expected
The invalid three fail and the valid wording is stored and rendered.
Data
No fixtures beyond the described setup.
Bound to
services-platform:modules/attention/tests/unit/request-schemas.spec.js#refuses a title override longer than 200 characters
services-platform:modules/attention/tests/unit/request-schemas.spec.js#refuses a portal template override while the portal is held
Source
services-platform:modules/attention/tests/integration/services/persistence/settings.integration.spec.js#refuses a template override that names an undeclared fact
05 Respect follow-up permissions and boundsvalidationapinegativetest
Proves
BR-CAP-PFM-ELG-020-05
Preconditions
A kind prohibits workspace escalation.
Steps
Request escalation, an unknown role and a sub-hour reminder interval.
Expected
Every incompatible change fails.
Data
No fixtures beyond the described setup.
Bound to
services-platform:modules/attention/tests/integration/services/persistence/settings.integration.spec.js#refuses an escalation on a definition that does not let the tenant change it
Source
services-platform:modules/attention/tests/integration/services/persistence/settings.integration.spec.js#refuses an escalation on a definition that does not let the tenant change it
06 Protect settings replacementconcurrencyapitest
Proves
BR-CAP-PFM-ELG-020-06
Preconditions
A settings version has been read.
Steps
Replace it, reuse the old version and change wording and rank.
Expected
Stale replacement fails and accepted changes audit their earlier and replacement values.
Data
No fixtures beyond the described setup.
Bound to
services-platform:modules/attention/tests/e2e/attention.e2e.spec.js#writes them, then refuses the same write at the old version with 409
services-platform:modules/attention/tests/integration/services/persistence/settings.integration.spec.js#audits a change of the template overrides and the rank adjustment with both before and after
Source
services-platform:modules/attention/tests/e2e/attention.e2e.spec.js#writes them, then refuses the same write at the old version with 409
07 Limit personal hidingvalidationapinegativetest
Proves
BR-CAP-PFM-ELG-020-07 INV-DOM-PFM-ELG-005-09
Preconditions
Required and advisory kinds are available.
Steps
Hide each, hide an unknown kind, use an old version and request hidden entries.
Expected
Only valid advisory hiding succeeds and explicit inclusion restores its display.
Data
No fixtures beyond the described setup.
Bound to
services-platform:modules/attention/tests/e2e/attention.e2e.spec.js#writes them, hiding an advisory definition from the caller’s list
services-platform:modules/attention/tests/e2e/attention.e2e.spec.js#refuses to hide a required definition with 400 naming it
Source
services-platform:modules/attention/tests/e2e/attention.e2e.spec.js#writes them, hiding an advisory definition from the caller’s list
08 Keep preference choices personalinvariantapitest
Proves
BR-CAP-PFM-ELG-020-08
Preconditions
Two people share the organization and one has not saved preferences.
Steps
Read the untouched preferences, change the other person’s hidden kinds and read both again.
Expected
The untouched person starts with no hidden kinds and the other person’s choices do not alter that view.
Data
Existing evidence fixtures provide the described setup.
Bound to
Source
services-platform:modules/attention/tests/integration/services/persistence/preferences.integration.spec.js#keeps one person’s preferences their own
09 Hide presentation without resolving workinteractionapiproposed
Proves
BR-CAP-PFM-ELG-017-06 BR-CAP-PFM-ELG-020-07
Preconditions
An advisory and a required occurrence reach one person.
Steps
Hide the advisory in personal preferences, request hidden items explicitly, then disable the kind in shared settings.
Expected
Personal hiding affects only that person, explicit inclusion restores the advisory and shared disablement leaves stored occurrences open.
Data
Run-owned records and a controlled clock where timing changes the result.
Source
services-platform:modules/attention/tests/integration/services/read/viewer-summary.integration.spec.js#pages each sort by its keyset without repeating or dropping an item; services-platform:modules/attention/tests/integration/services/persistence/preferences.integration.spec.js#refuses to hide a required definition, naming it, the row unchanged
10 Recheck settings before reminder deliveryinteractionapiproposed
Proves
BR-CAP-PFM-ELG-019-05 BR-CAP-PFM-ELG-020-05
Preconditions
A reminder is planned under an enabled kind policy.
Steps
Disable its reminder policy at the current settings version and invoke delivery.
Expected
The sender records a disabled-policy skip and sends no message.
Data
Run-owned records and a controlled clock where timing changes the result.
Source
services-platform:modules/attention/tests/integration/services/reminders/reminders.integration.spec.js#skips a due reminder whose item was resolved before it went; services-platform:modules/attention/tests/integration/services/persistence/settings.integration.spec.js#refuses an escalation on a definition that does not let the tenant change it
11 Keep private choices independentinvariantapitest
Proves
BR-CAP-PFM-ELG-020-08
Preconditions
Two staff members can read the same advisory kind and neither has preferences.
Steps
Hide that advisory for one person, inspect both preference rows and request the other person’s view.
Expected
Only the owner’s hidden-kind choice changes; the other person retains default visibility.
Data
Run-owned fixtures, separate caller contexts and a controlled clock where required.
Bound to
Source
services-platform:modules/attention/tests/integration/services/persistence/preferences.integration.spec.js#keeps one person’s preferences their own

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.