Skip to content

ATS-PFM-INT-008Explain and select the connection for a call: Capability Test Specification

Markdown

ATS-PFM-INT-008

Explain and select the connection for a call: Capability Test Specification

Markdown
  • DocumentProposed

KindAcceptance test setProduct areaPlatformModuleIntegration access, customer extensions and shared workflow configurationRevision3

Read atservices-platform ad3f6a65macroservice-libraries 54536a44react-console baf6dae3

Coverage

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

Test Scenarios

11 scenarios proving CAP-PFM-INT-008; 9 bound to an existing test.

01 Business context selects the narrowest choiceruleapitest
Proves
BR-CAP-PFM-INT-008-01 AS-JNY-PFM-INT-003-01
Preconditions
Merchant account A has a record choice, B has a business-unit choice and a third account has none.
Steps
Explain payments for all three.
Expected
A selects its record connection, B its business-unit connection and the third reports missing configuration with every visited scope.
Data
Fixtures establishing the stated accounts, declarations and history in an isolated workspace.
Bound to
Source
services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#asks every scope the policy allows and the context names, most specific first
02 Trace identifies the failed eligibility conditionvalidationapinegativetest
Proves
BR-CAP-PFM-INT-008-02
Preconditions
Prepare candidates each violating one check.
Steps
Resolve each candidate.
Expected
The trace identifies that failed check and the missing prerequisite.
Data
Fixtures establishing the stated accounts, declarations and history in an isolated workspace.
Bound to
Source
services-platform:modules/integrations/tests/unit/services/binding-eligibility.spec.ts#fails a published version with no active deployment here
03 Sensitivity controls broader-scope fallbackedgeapinegativetest
Proves
BR-CAP-PFM-INT-008-03
Preconditions
An unusable record choice sits above a valid application choice for payments and webinars.
Steps
Explain each capability.
Expected
Payment refuses the record choice; webinar uses the application choice and reports that it skipped the narrower scope.
Data
Fixtures establishing the stated accounts, declarations and history in an isolated workspace.
Bound to
Source
services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#stops at the first ineligible binding with binding_ineligible, never reaching the broader scope
04 Unbound work reports configuration gapsfailureapinegativetest
Proves
BR-CAP-PFM-INT-008-04
Preconditions
The business unit has no provider choice.
Steps
Explain a payment in that context.
Expected
Resolution reports no binding and lists the unbound scopes it examined.
Data
Fixtures establishing the stated accounts, declarations and history in an isolated workspace.
Bound to
Source
services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#refuses no_binding with every visited scope recorded, each with no binding
05 Contract retirement precedes selectiontransitionunitnegativetest
Proves
BR-CAP-PFM-INT-008-05
Preconditions
Prepare a sunset major, a deprecated major before sunset and an undefined capability.
Steps
Resolve each.
Expected
The sunset major refuses with no scope trace, the deprecated major resolves and the unknown capability reports invalid input.
Data
Fixtures establishing the stated accounts, declarations and history in an isolated workspace.
Bound to
Source
services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#refuses contract_retired after its sunset, reading no scope
06 Degraded accounts remain usable with a warningedgeapitest
Proves
BR-CAP-PFM-INT-008-06
Preconditions
One explicitly named connection is degraded and another requires re-authorization.
Steps
Explain a call against each.
Expected
The degraded account resolves with a warning and the other refuses as unavailable.
Data
Fixtures establishing the stated accounts, declarations and history in an isolated workspace.
Bound to
Source
services-platform:modules/integrations/tests/integration/services/bindings/resolve.integration.spec.js#resolves with the connection_degraded warning while the circuit is closed
07 Circuit state never silently changes processorsinvariantapitest
Proves
BR-CAP-PFM-INT-008-07
Preconditions
A payment choice has an open circuit above a broader application choice.
Steps
Explain immediately and after the probe becomes due.
Expected
Both use the original connection, with open then half-open circuit information in the trace.
Data
Fixtures establishing the stated accounts, declarations and history in an isolated workspace.
Bound to
Source
services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#resolves a payment whose processor’s circuit is open rather than refusing it binding_ineligible
08 Refund routing preserves the original processorinteractionapinegativetest
Proves
BR-CAP-PFM-INT-008-08
Preconditions
A payment was taken by Payrix, with Stripe later selected by bindings.
Steps
Explain a directly named Payrix refund before and after its disconnection.
Expected
The first bypasses bindings and resolves; the later request reports the original connection disconnected.
Data
Fixtures establishing the stated accounts, declarations and history in an isolated workspace.
Bound to
Source
services-platform:modules/integrations/tests/integration/services/bindings/resolve.integration.spec.js#reaches the processor that took the payment through its named connection
09 Read-only Explain exposes the actual selectionpermissionbrowsertest
Proves
BR-CAP-PFM-INT-008-09
Preconditions
Record and business-unit bindings exist.
Steps
Explain in business-unit context as a reader.
Expected
The chosen connection, binding and checks are visible without mutation controls.
Data
Fixtures establishing the stated accounts, declarations and history in an isolated workspace.
Bound to
Source
services-platform:modules/integrations/tests/e2e/integration-bindings.e2e.spec.js#may explain
10 Circuit refusal retains the selected processorinteractionapiproposed
Proves
BR-CAP-PFM-INT-008-07 BR-CAP-PFM-INT-009-07
Preconditions
A sensitive binding selects an account with an open circuit and another usable account exists.
Steps
Resolve and invoke the capability, then inspect the trace and adapter calls.
Expected
Resolution identifies the selected account and circuit condition; admission refuses without contacting either processor.
Data
Run-owned records and principals in an isolated workspace.
Source
services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#resolves a payment whose processor’s circuit is open rather than refusing it binding_ineligible,services-platform:modules/integrations/tests/integration/services/executions/invoke-capability.integration.spec.js#refuses with 503 provider_unavailable while the circuit is open, and releases the key
11 A direct test uses its named accountinteractionapiproposed
Proves
BR-CAP-PFM-INT-008-08 BR-CAP-PFM-INT-012-04
Preconditions
A provider-reported test account supports the requested capability and has no binding.
Steps
Invoke through the Library and inspect resolution and execution identity.
Expected
The test uses that account directly and retains ordinary gateway history.
Data
Run-owned records and principals in an isolated workspace.
Source
services-platform:modules/integrations/tests/integration/services/bindings/resolve.integration.spec.js#reaches the processor that took the payment through its named connection,services-platform:modules/integrations/tests/e2e/connection-try.e2e.spec.js#records an execution of that connection by the calling application library_try on behalf of the person, with no binding

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.