Skip to content

ATS-PFM-ELG-015Identify and repair gaps in responsibility coverage: Capability Test Specification

Markdown

ATS-PFM-ELG-015

Identify and repair gaps in responsibility coverage: Capability Test Specification

Markdown
  • DocumentProposed

KindAcceptance test setProduct areaPlatformModuleEligibility, Responsibilities and AttentionRevision3

Read atservices-platform ad3f6a65react-console baf6dae3

Coverage

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

Test Scenarios

10 scenarios proving CAP-PFM-ELG-015; 6 bound to an existing test.

01 Validate all area declarationsvalidationapinegativetest
Proves
BR-CAP-PFM-ELG-015-01
Preconditions
Declaration sets contain each invalid shape.
Steps
Register every set.
Expected
Problems are identified and no partial data is written.
Data
No fixtures beyond the described setup.
Bound to
Source
services-platform:modules/responsibilities/tests/integration/services/registration/register-service-responsibilities.integration.spec.js#refuses a malformed manifest whole, as ObjectInvalid, writing nothing
02 Retain omitted area historytransitionapitest
Proves
BR-CAP-PFM-ELG-015-02
Preconditions
An application has registered areas.
Steps
Resubmit unchanged, changed and with an omission.
Expected
Unchanged areas remain unwritten, changed areas update and omitted areas remain retired.
Data
No fixtures beyond the described setup.
Bound to
Source
services-platform:modules/responsibilities/tests/integration/services/registration/register-service-responsibilities.integration.spec.js#leaves an unchanged definition unwritten the second time: its version and re
03 Reconcile deployment changes promptlyboundaryapitest
Proves
BR-CAP-PFM-ELG-015-03
Preconditions
New always-held areas include one with a default.
Steps
Register, repeat unchanged and exhaust the immediate budget.
Expected
Defaults and gaps update promptly, unchanged registration does nothing and budget exhaustion defers remaining work to night.
Data
No fixtures beyond the described setup.
Bound to
services-platform:modules/responsibilities/tests/integration/services/reconcile/reconcile-after-registration.integration.spec.js#leaves every tenant to the nightly reconcile when the budget is spent, writing nothing
Source
services-platform:modules/responsibilities/tests/integration/services/reconcile/reconcile-after-registration.integration.spec.js#gives the tenant the role default of a newly registered definition
04 Make default reconciliation repeatableinvariantapitest
Proves
BR-CAP-PFM-ELG-015-04
Preconditions
Declared, removed and withdrawn defaults exist.
Steps
Reconcile twice.
Expected
The declared holding exists once, removed defaults remain absent, withdrawn defaults end and repetition changes nothing.
Data
No fixtures beyond the described setup.
Bound to
services-platform:modules/responsibilities/tests/integration/services/reconcile/reconcile-tenant.integration.spec.js#(a) writes one active role-default assignment of the declared role at the tenant
Source
services-platform:modules/responsibilities/tests/integration/services/reconcile/reconcile-tenant.integration.spec.js#(a) writes one active role-default assignment of the declared role at the tenant
05 Update gaps with assignment writesinteractionapitest
Proves
BR-CAP-PFM-ELG-015-05
Preconditions
One always-held area has a primary and another expects no holder.
Steps
End, recreate and remove the last default holding.
Expected
The gap opens or clears immediately, while unrelated and no-holder-required areas stay unchanged.
Data
No fixtures beyond the described setup.
Bound to
services-platform:modules/responsibilities/tests/integration/services/reconcile/reconcile-tenant.integration.spec.js#(c) has the report clear once a holder appears, before any reconcile (DEF-RA-0003), and the reconcile leave it clear
Source
services-platform:modules/responsibilities/tests/integration/services/persistence/unassigned-responsibilities.integration.spec.js#opens a row for an unheld always-held area and none for an area that expects nobody
06 Clear administrator attention with coverageinteractionbrowsertest
Proves
BR-CAP-PFM-ELG-015-06 AS-JNY-PFM-ELG-006-01
Preconditions
An always-held area has no primary.
Steps
Inspect administrator Home and assign a holder.
Expected
The uncovered-area advisory reaches administrators and resolves as cleared after successful refresh.
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 open row, addressed to the administrators, about the responsibility
Source
services-platform:modules/attention/tests/integration/services/evaluate/refresh-unassigned-attention.integration.spec.js#has one open report row and one open item for an always-held area nobody holds
07 Repair a reported gap by assignmentinteractionapiproposed
Proves
BR-CAP-PFM-ELG-013-08 BR-CAP-PFM-ELG-015-05
Preconditions
An always-held area has no primary holding.
Steps
Read uncovered areas, create a valid primary holding, then end it and read again.
Expected
The area leaves the report when assigned and returns after ending, with each gap change committed with the holding.
Data
Run-owned records and a controlled clock where timing changes the result.
Source
services-platform:modules/responsibilities/tests/integration/services/persistence/assignments.integration.spec.js#ends the assignment’s open delegations in the same transaction; services-platform:modules/responsibilities/tests/integration/services/persistence/unassigned-responsibilities.integration.spec.js#opens the row at once when the only assignment of an area is ended
08 Report inactive cover without silently ending itinteractionapiproposed
Proves
BR-CAP-PFM-ELG-014-08 BR-CAP-PFM-ELG-015-04
Preconditions
A cover arrangement exists before the delegate becomes inactive.
Steps
Run nightly reconciliation, inspect its report and the cover row, then read effective attention.
Expected
The report names the inactive colleague while the arrangement is retained; ineffective coverage supplies no attention match.
Data
Run-owned records and a controlled clock where timing changes the result.
Source
services-platform:modules/responsibilities/tests/integration/services/reconcile/reconcile-tenant.integration.spec.js#(d) reports a delegation to a user who is no longer active, and leaves it active; services-platform:modules/responsibilities/tests/integration/services/reconcile/reconcile-tenant.integration.spec.js#(a) writes one active role-default assignment of the declared role at the tenant
09 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
10 Keep the coverage write when attention refresh failsfailureapinegativeproposed
Proves
BR-CAP-PFM-ELG-015-05 BR-CAP-PFM-ELG-015-06
Preconditions
An uncovered area has an outstanding advisory and an accepted assignment repair is ready.
Steps
Fail the post-commit advisory refresh, create the holder, inspect coverage and run the later repair refresh.
Expected
The holder and cleared gap remain committed while the advisory may lag; a successful later refresh clears the advisory.
Data
Run-owned fixtures, separate caller contexts and a controlled clock where required.
Source
services-platform:modules/responsibilities/services/persistence/assignments.ts:refreshUnassignedFor

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.