---
id: TST-PFM-INT-572
title: binding resolution
kind: unit
product_area: platform
module: integrations
revision: 1
status: draft
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  macroservice-libraries: 54536a441935c6e09fdb7f96f0bec71c52ba4e03
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
repository: services-platform
files:
  - modules/integrations/tests/unit/services/binding-resolution.spec.ts
implements:
  - ATS-PFM-INT-008-01
  - ATS-PFM-INT-008-03
  - ATS-PFM-INT-008-04
  - ATS-PFM-INT-008-05
  - ATS-PFM-INT-008-07
environment: mock
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 1
isolation: Pure test fixtures owned by the test process.
evidence:
  - 'services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts'
test_cases:
  - 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
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#skips a scope
      the context cannot name: a resource of another object, a missing business unit
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#resolves at
      the resource, with its binding, revision, pin and deployment
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#records only
      the scopes it visited, the chosen one with its checks
    provenance: test
  - 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
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#records the
      ineligible binding’s failed check in the trace
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#refuses with
      exactly the contracts’ InvokeResult refusal
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#walks past an
      ineligible resource binding to the application’s
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#warns that
      the resource binding was skipped
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#keeps the
      skipped binding and what it lacked in the trace
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#resolves the
      binding whose circuit is open on a capability that walks, never moving to a broader scope
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#records the
      circuit open under its check, which passes
    provenance: test
  - 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
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#stops at that
      binding with binding_ineligible
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#is a
      candidate the walk records, not a missing one
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#refuses
      no_binding with every visited scope recorded, each with no binding
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#refuses a
      capability invoked only on a named connection with no_binding and an empty trace
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#refuses
      contract_retired after its sunset, reading no scope
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#still
      resolves a deprecated major before its sunset
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#is refused as
      an invalid request naming the capability
    provenance: test
dependency_evidence:
  provenance: test
  source: 'services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts'
  reviewed:
    - Suite introduction
    - Fixture setup
    - Client substitutions
    - Assertions and cleanup
---
# binding resolution

## Verification Boundary

This unit suite exercises binding resolution. Its registration records the executable definition; no run result is asserted.

## What This Suite Proves

The bindings identify the detailed outcomes asserted by this suite. Test-level evidence retains the individual checks, including cases where several suites contribute to one scenario.

## What It Does Not Prove

Pure cases do not establish database constraints, deployed authorization or provider effects.

## Real Dependencies and Test Doubles

The suite evaluates its imported functions with controlled inputs. Its source records the fixture and substitution boundary.

## Must Not Be Doubled

The function under test and its result checks must execute. Replacing them with expected answers provides no proof.
