Skip to content

ATS-PFM-ELG-002Locate rules and understand their dependencies: Capability Test Specification

Markdown

ATS-PFM-ELG-002

Locate rules and understand their dependencies: Capability Test Specification

Markdown
  • DocumentProposed

KindAcceptance test setProduct areaPlatformModuleEligibility, Responsibilities and AttentionRevision3

Read atservices-platform ad3f6a65react-console baf6dae3

Coverage

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

Test Scenarios

13 scenarios proving CAP-PFM-ELG-002; 8 bound to an existing test.

01 Enforce rule-reading authoritypermissionapinegativetest
Proves
BR-CAP-PFM-ELG-002-01
Preconditions
Readers, callers without read authority, a roleless person and an outside-customer user are available.
Steps
Request lists and rule details as each caller.
Expected
Authorized readers receive results and the remaining callers are rejected.
Data
No fixtures beyond the described setup.
Bound to
services-platform:modules/eligibility/tests/e2e/eligibility-definitions.e2e.spec.js#refuses a caller without platform.eligibility.read, 403
Source
services-platform:modules/eligibility/tests/e2e/eligibility-definitions.e2e.spec.js#refuses a caller without platform.eligibility.read, 403
02 Exclude portal administrationpermissionapinegativetest
Proves
BR-CAP-PFM-ELG-002-02
Preconditions
A member signs in through the portal.
Steps
Request definition and binding administration.
Expected
Each request fails because the caller context is incompatible.
Data
No fixtures beyond the described setup.
Bound to
services-platform:modules/eligibility/tests/e2e/eligibility-definitions.e2e.spec.js#refuses a portal caller every definitions route, as a context mismatch
Source
services-platform:modules/eligibility/tests/e2e/eligibility-definitions.e2e.spec.js#refuses a portal caller every definitions route, as a context mismatch
03 Filter without wildcard interpretationruleapitest
Proves
BR-CAP-PFM-ELG-002-03
Preconditions
Two workspaces contain varied statuses, owners and conditions.
Steps
Apply every filter and search using mixed case and a percent character.
Expected
Results remain local and key-ordered; matching is case-insensitive and the percent character is literal.
Data
No fixtures beyond the described setup.
Bound to
services-platform:modules/eligibility/tests/integration/services/model/explorer.integration.spec.js#lists the tenant’s definitions in key order, and none of another tenant’s
services-platform:modules/eligibility/tests/integration/services/model/explorer.integration.spec.js#takes a percent sign in the text literally rather than as a wildcard
Source
services-platform:modules/eligibility/tests/integration/services/model/explorer.integration.spec.js#lists the tenant’s definitions in key order, and none of another tenant’s
04 Reject invalid search parametersvalidationapinegativetest
Proves
BR-CAP-PFM-ELG-002-04
Preconditions
An eligibility reader is available.
Steps
Send 201 search characters and an unsupported status.
Expected
Each failure identifies the invalid parameter.
Data
No fixtures beyond the described setup.
Bound to
services-platform:modules/eligibility/tests/e2e/eligibility-definitions.e2e.spec.js#refuses an explorer filter outside the closed list, 400
Source
services-platform:modules/eligibility/tests/e2e/eligibility-definitions.e2e.spec.js#refuses a search text longer than a name can be, 400
05 Inspect grouped dependenciesruleapitest
Proves
BR-CAP-PFM-ELG-002-07
Preconditions
A rule has two purpose groups, a lagging pin and two referencing rules.
Steps
Open usage.
Expected
Purpose-ordered groups expose counts and binding details, and referencing rules include their usage.
Data
No fixtures beyond the described setup.
Bound to
services-platform:modules/eligibility/tests/integration/services/governance/usage.integration.spec.js#groups the bindings by consumer kind in kind order, each labelled from the registry and counted
services-platform:modules/eligibility/tests/integration/services/governance/usage.integration.spec.js#answers each binding with its consumer, mode, status, fail policy and pin
services-platform:modules/eligibility/tests/integration/services/governance/usage.integration.spec.js#answers each reference with its pin and the referencing definition’s own usage, in key order
Source
services-platform:modules/eligibility/tests/integration/services/governance/usage.integration.spec.js#groups the bindings by consumer kind in kind order, each labelled from the registry and counted
06 Compare dependency countsinvariantapitest
Proves
BR-CAP-PFM-ELG-002-08
Preconditions
Other rules include the target through a publication and draft.
Steps
Read overview and explorer counts, then attempt archive.
Expected
The same reference count appears in all three results.
Data
No fixtures beyond the described setup.
Bound to
services-platform:modules/eligibility/tests/integration/services/model/explorer.integration.spec.js#counts the draft reference as well as the published one in the definition’s overview
Source
services-platform:modules/eligibility/tests/integration/services/model/explorer.integration.spec.js#counts the draft reference as well as the published one in the definition’s overview
07 Conceal outside-workspace rulesboundaryapinegativetest
Proves
BR-CAP-PFM-ELG-002-09
Preconditions
A separate workspace owns the requested rule.
Steps
Read its detail, usage and comparison from the current workspace.
Expected
All three requests return not found.
Data
No fixtures beyond the described setup.
Bound to
Source
services-platform:modules/eligibility/tests/integration/services/model/explorer.integration.spec.js#refuses a key the tenant does not have, 404
08 Expose optional catalogue entriesedgebrowsertest
Proves
BR-CAP-PFM-ELG-002-10
Preconditions
Active, archived and private product rules exist.
Steps
Open the configuration list and enable each visibility switch.
Expected
The relevant hidden entries appear only after their switch is enabled, with private product ownership shown.
Data
No fixtures beyond the described setup.
Bound to
Source
react-console:acceptance/eligibility/playwright/journeys/definitions/ELIG-ACC-0079.spec.ts#ELIG-ACC-0079
09 Discover a saved draftinteractionapiproposed
Proves
BR-CAP-PFM-ELG-001-06 BR-CAP-PFM-ELG-002-06
Preconditions
A rule author and a reader share a workspace.
Steps
Create a bare rule, save a draft that references a released rule, then inspect the list and detail.
Expected
The new rule is discoverable and its draft and reference counts agree with the saved expression.
Data
Run-owned records and a controlled clock where timing changes the result.
Source
services-platform:modules/eligibility/tests/integration/services/model/authoring.integration.spec.js#creates a definition without a draft when the request carries no expression; services-platform:modules/eligibility/tests/integration/services/model/explorer.integration.spec.js#answers the version it last published and its draft
10 Use dependency counts to decide archive readinessinteractionapiproposed
Proves
BR-CAP-PFM-ELG-002-08 BR-CAP-PFM-ELG-005-03
Preconditions
A rule has a following use and a live draft reference.
Steps
Read its overview and usage, attempt archive, remove the use and reference, then repeat the reads and archive.
Expected
The refusal counts agree with discovery; removing both dependencies permits archive.
Data
Run-owned records and a controlled clock where timing changes the result.
Source
services-platform:modules/eligibility/tests/integration/services/model/explorer.integration.spec.js#is the number the archive refusal names; services-platform:modules/eligibility/tests/integration/services/persistence/definitions.integration.spec.js#refuses while an active binding follows it, counting the binding, and leaves it active
11 Discover a newly connected consumerinteractionapiproposed
Proves
BR-CAP-PFM-ELG-002-07 BR-CAP-PFM-ELG-007-09
Preconditions
A published rule has no uses.
Steps
Connect a consumer, inspect usage, remove the use and inspect usage again.
Expected
Usage identifies the consumer and its version choice while connected and removes that entry after deletion.
Data
Run-owned records and a controlled clock where timing changes the result.
Source
services-platform:modules/eligibility/tests/integration/services/governance/usage.integration.spec.js#groups the bindings by consumer kind in kind order, each labelled from the registry and counted; services-platform:modules/eligibility/tests/integration/services/persistence/bindings.integration.spec.js#takes the binding’s plans with it
12 Find retained history from a ruleinteractionapiproposed
Proves
BR-CAP-PFM-ELG-002-01 BR-CAP-PFM-ELG-009-06
Preconditions
A rule has retained bound decisions and read authority is available.
Steps
Open the rule, request its newest decision page and inspect one decision; repeat in another workspace.
Expected
The rule reader sees the matching decision details locally and receives no history through the other workspace.
Data
Run-owned records and a controlled clock where timing changes the result.
Source
services-platform:modules/eligibility/tests/e2e/eligibility-definitions.e2e.spec.js#refuses a caller without platform.eligibility.read, 403; services-platform:modules/eligibility/tests/e2e/eligibility-evaluate.e2e.spec.js#answers 404 for a decision the tenant does not have
13 Traverse exact explorer page boundariesboundaryapinegativeproposed
Proves
BR-CAP-PFM-ELG-002-05 BR-CAP-PFM-ELG-002-09
Preconditions
A workspace contains 201 uniquely keyed rules and another contains a sentinel rule.
Steps
Request the default page, a page of 200, an excessive page and the remaining cursor page.
Expected
The default contains 50 rules, the maximum contains 200, the excessive request is refused and traversal returns every local rule once.
Data
Run-owned fixtures, separate caller contexts and a controlled clock where required.
Source
services-platform:modules/eligibility/services/model/explorer.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.