Skip to content

ATS-PFM-ELG-016Maintain attention conditions throughout their lifecycle: Capability Test Specification

Markdown

ATS-PFM-ELG-016

Maintain attention conditions throughout their lifecycle: Capability Test Specification

Markdown
  • DocumentProposed

KindAcceptance test setProduct areaPlatformModuleEligibility, Responsibilities and AttentionRevision3

Read atservices-platform ad3f6a65react-console baf6dae3

Coverage

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

Test Scenarios

16 scenarios proving CAP-PFM-ELG-016; 12 bound to an existing test.

01 Reject invalid kinds togethervalidationapinegativetest
Proves
BR-CAP-PFM-ELG-016-01
Preconditions
Attention manifests represent every invalid declaration shape.
Steps
Submit the manifests.
Expected
Refusals name kind and path without writes, returning a deployment result rather than an uncaught failure.
Data
No fixtures beyond the described setup.
Bound to
services-platform:modules/attention/tests/unit/registration-manifest.spec.js#refuses a required definition without required_because
services-platform:modules/attention/tests/integration/services/registration/register-service-attention.integration.spec.js#answers a refusal to the deploy as { ok: false, error } rather than failing the invocation
Source
services-platform:modules/attention/tests/integration/services/registration/register-service-attention.integration.spec.js#refuses a class that changes between releases
02 Retire declarations without losing settingstransitionapitest
Proves
BR-CAP-PFM-ELG-016-02
Preconditions
A kind has open occurrences and workspace settings.
Steps
Omit it on registration.
Expected
The kind and its occurrences retire while settings remain.
Data
No fixtures beyond the described setup.
Bound to
services-platform:modules/attention/tests/integration/services/registration/register-service-attention.integration.spec.js#retires a definition the manifest no longer declares, resolves its open items and keeps its settings
Source
services-platform:modules/attention/tests/integration/services/registration/register-service-attention.integration.spec.js#retires a definition the manifest no longer declares, resolves its open items and keeps its settings
03 Guard provider writespermissionapinegativetest
Proves
BR-CAP-PFM-ELG-016-03 INV-DOM-PFM-ELG-005-02
Preconditions
An application database role can invoke the attention functions.
Steps
Try direct table mutation and foreign-workspace, service, application and retired-kind claims.
Expected
All are rejected; Platform remains able to publish another application’s computed kind.
Data
No fixtures beyond the described setup.
Bound to
services-platform:modules/attention/tests/integration/services/persistence/items.integration.spec.js#reaches no table directly: a provider cannot write an item but through the functions
services-platform:modules/attention/tests/integration/services/persistence/items.integration.spec.js#lets Platform’s own role publish another application’s definition, as its evaluator does
Source
services-platform:modules/attention/tests/integration/services/persistence/items.integration.spec.js#reaches no table directly: a provider cannot write an item but through the functions
04 Refuse malformed occurrences atomicallyvalidationapinegativetest
Proves
BR-CAP-PFM-ELG-016-04 INV-DOM-PFM-ELG-005-03
Preconditions
A declared attention kind is available.
Steps
Supply unknown or mistyped facts, unsupported audiences, eleven audiences, a team and an unknown role.
Expected
Each failure reports its code and writes no item.
Data
No fixtures beyond the described setup.
Bound to
Source
services-platform:modules/attention/tests/integration/services/persistence/items.integration.spec.js#refuses a fact the definition does not declare
05 Separate refresh from recurrenceinvariantapitest
Proves
BR-CAP-PFM-ELG-016-05
Preconditions
A kind and deduplication key are available.
Steps
Publish twice, resolve and publish again.
Expected
Refresh retains one occurrence with replaced audiences; recurrence creates the next generation.
Data
No fixtures beyond the described setup.
Bound to
services-platform:modules/attention/tests/integration/services/persistence/items.integration.spec.js#refreshes the open item in place on a second publish: one row, new facts
services-platform:modules/attention/tests/integration/services/persistence/items.integration.spec.js#opens the next generation, a new item, when a resolved condition recurs
Source
services-platform:modules/attention/tests/integration/services/persistence/items.integration.spec.js#refreshes the open item in place on a second publish: one row, new facts
06 Complete presentation scoperuleapitest
Proves
BR-CAP-PFM-ELG-016-06
Preconditions
A console-and-portal declaration is restricted to console.
Steps
Publish a chain without its final workspace scope.
Expected
The stored item uses console only and gains the final organization scope.
Data
No fixtures beyond the described setup.
Bound to
services-platform:modules/attention/tests/integration/services/persistence/items.integration.spec.js#masks the surfaces to the tenant’s: a console-and-portal definition the tenant keeps on the console
Source
services-platform:modules/attention/tests/integration/services/persistence/items.integration.spec.js#masks the surfaces to the tenant’s: a console-and-portal definition the tenant keeps on the console
07 Resolve only unconfirmed scope matchestransitionapitest
Proves
BR-CAP-PFM-ELG-016-07
Preconditions
Occurrences were refreshed before and after a cutoff.
Steps
Resolve one twice, then clear unconfirmed occurrences within a scope.
Expected
The repeat returns true then false and only older matching occurrences clear.
Data
No fixtures beyond the described setup.
Bound to
services-platform:modules/attention/tests/integration/services/persistence/items.integration.spec.js#resolves the open items not confirmed since the instant, in the scope given, and leaves the confirmed
Source
services-platform:modules/attention/tests/integration/services/persistence/items.integration.spec.js#resolves the open item once and answers false the second time
08 Maintain items in the sweeptransitionapitest
Proves
BR-CAP-PFM-ELG-016-08
Preconditions
Expired, retired-kind and rerank-needed items plus orphan records exist.
Steps
Run a workspace sweep.
Expected
Expired work releases its key, retired work clears, rank updates and orphan records are removed.
Data
No fixtures beyond the described setup.
Bound to
services-platform:modules/attention/tests/integration/services/sweep/sweep-tenant.integration.spec.js#frees the expired item’s dedupe key, so the condition can open again
services-platform:modules/attention/tests/integration/services/sweep/sweep-tenant.integration.spec.js#deletes the audience, state and reminder rows of an item that no longer exists
services-platform:modules/attention/tests/unit/rules.spec.js#never reopens a resolved item (a recurrence is a new generation)
Source
services-platform:modules/attention/tests/integration/services/sweep/sweep-tenant.integration.spec.js#expires an item whose expiry has passed, and only that one
09 Bound computed attentionboundaryapinegativetest
Proves
BR-CAP-PFM-ELG-016-09
Preconditions
A dataset-backed kind has configurable matches.
Steps
Evaluate, narrow matches, exceed the cap and add an eligibility audience.
Expected
Matches publish, removed matches clear, capacity stops without resolution and unsupported eligibility fails.
Data
No fixtures beyond the described setup.
Bound to
services-platform:modules/attention/tests/integration/services/evaluate/evaluate-definition.integration.spec.js#publishes one item per matching record with its facts and the fixed audience, and records the run
services-platform:modules/attention/tests/integration/services/evaluate/evaluate-definition.integration.spec.js#resolves the item of a record the next run no longer matches (the tenant’s setting narrowed it)
Source
services-platform:modules/attention/tests/integration/services/evaluate/evaluate-definition.integration.spec.js#publishes one item per matching record with its facts and the fixed audience, and records the run
10 Authorize accountable manual clearancepermissionapinegativetest
Proves
BR-CAP-PFM-ELG-016-10
Preconditions
An open occurrence exists.
Steps
Resolve with and without separate clearance authority, then repeat.
Expected
The authorized reason is audited, unauthorized input fails and closed work returns not found.
Data
No fixtures beyond the described setup.
Bound to
services-platform:modules/attention/tests/e2e/attention.e2e.spec.js#resolves an open item with the reason, audited
services-platform:modules/attention/tests/e2e/attention.e2e.spec.js#refuses it without resolve-manually, with 403
services-platform:modules/attention/tests/e2e/attention.e2e.spec.js#answers 404 for an item that is no longer open
Source
services-platform:modules/attention/tests/e2e/attention.e2e.spec.js#resolves an open item with the reason, audited
11 Exercise the Accounting-to-Home pathinteractionbrowsertest
Proves
BR-CAP-PFM-ELG-016-03 BR-CAP-PFM-ELG-016-07 AS-JNY-PFM-ELG-004-01 AS-JNY-PFM-ELG-004-06
Preconditions
Publishing is enabled and Pat holds posting at a unit.
Steps
Enter and close a batch in Accounting, inspect Home and post it.
Expected
The close produces one item and posting removes it.
Data
No fixtures beyond the described setup.
Bound to
Source
react-console:acceptance/platform-attention/playwright/journeys/cross-application/RA-ACC-0250.spec.ts#RA-ACC-0250
12 Redirect merge referencesinteractionapiproposed
Proves
BR-CAP-PFM-ELG-016-12
Preconditions
The losing contact has an item, contact audience and personal state.
Steps
Merge into a surviving contact.
Expected
Supported references move to the survivor and an existing survivor state takes precedence.
Data
No fixtures beyond the described setup.
Source
services-platform:docs/attention.md#8. The merge participant
13 Clear gap attention after coverage repairinteractionapiproposed
Proves
BR-CAP-PFM-ELG-015-06 BR-CAP-PFM-ELG-016-07
Preconditions
An uncovered always-held area has advisory administrator attention.
Steps
Assign a primary holder, refresh uncovered-area attention and inspect the advisory and gap report.
Expected
Coverage clears the report and resolves its advisory; repeating the refresh creates no new occurrence.
Data
Run-owned records and a controlled clock where timing changes the result.
Source
services-platform:modules/attention/tests/integration/services/evaluate/refresh-unassigned-attention.integration.spec.js#resolves the item as cleared when the refresh runs after the assignment; services-platform:modules/attention/tests/integration/services/persistence/items.integration.spec.js#resolves the open items not confirmed since the instant, in the scope given, and leaves the confirmed
14 Remove resolved conditions from every matching listinteractionapiproposed
Proves
BR-CAP-PFM-ELG-016-07 BR-CAP-PFM-ELG-017-02
Preconditions
An open condition reaches two staff members through different audiences.
Steps
Read both lists, resolve the condition at source and read both lists and the stored occurrence.
Expected
Both lists lose the condition while the stored occurrence retains its closed history.
Data
Run-owned records and a controlled clock where timing changes the result.
Source
services-platform:modules/attention/tests/integration/services/persistence/items.integration.spec.js#resolves the open items not confirmed since the instant, in the scope given, and leaves the confirmed; services-platform:modules/attention/tests/integration/services/persistence/items.queries.integration.spec.js#reaches a role audience’s holders, and not a user without the role
15 Keep escalation through provider refreshinteractionapitest
Proves
BR-CAP-PFM-ELG-016-05 BR-CAP-PFM-ELG-019-02
Preconditions
An overdue occurrence has a configured escalation target.
Steps
Sweep to escalate, repeat the sweep, refresh the same provider key, then inspect audiences and audit.
Expected
The target remains present and there is only one escalation change.
Data
Run-owned records and a controlled clock where timing changes the result.
Bound to
Source
services-platform:modules/attention/tests/integration/services/persistence/items.integration.spec.js#opens the next generation, a new item, when a resolved condition recurs; services-platform:modules/attention/tests/integration/services/sweep/sweep-tenant.integration.spec.js#escalates an item once: a second sweep stamps, adds and records nothing
16 Inspect retirement after the repair windowedgeapinegativeproposed
Proves
BR-CAP-PFM-ELG-016-02
Preconditions
A retired kind still has an open occurrence after its immediate resolution failed.
Steps
Advance beyond the recent-retirement window, run the sweep and inspect stored occurrence and reader output.
Expected
The unresolved occurrence remains stored but unseen, exposing the bounded repair limit.
Data
Run-owned fixtures, separate caller contexts and a controlled clock where required.
Source
services-platform:modules/attention/services/persistence/items.ts:resolveRetiredDefinitionItems; services-platform:modules/attention/services/sweep/sweep-tenant.ts

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.