---
id: TST-PFM-INT-461
title: extension bindings table
kind: integration
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/extensions/tests/integration/db/extension-bindings.table.integration.spec.js
implements: []
environment: local
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 5
isolation: >-
  Use the suite-owned database fixtures and its declared cleanup; prepare the test database before
  integration or lifecycle execution.
evidence:
  - >-
    services-platform:modules/extensions/tests/integration/db/extension-bindings.table.integration.spec.js
test_cases:
  - source: >-
      services-platform:modules/extensions/tests/integration/db/extension-bindings.table.integration.spec.js#modules/extensions/db/extension-bindings.table.ts
    provenance: test
  - source: >-
      services-platform:modules/extensions/tests/integration/db/extension-bindings.table.integration.spec.js#copies
      the point’s cardinality onto the binding, whatever the writer sent
    provenance: test
  - source: >-
      services-platform:modules/extensions/tests/integration/db/extension-bindings.table.integration.spec.js#refuses
      a second enabled binding at the same scope of a single point, by the single-scope index
    provenance: test
  - source: >-
      services-platform:modules/extensions/tests/integration/db/extension-bindings.table.integration.spec.js#refuses
      a shadow binding beside an enabled one at the same scope of a single point
    provenance: test
  - source: >-
      services-platform:modules/extensions/tests/integration/db/extension-bindings.table.integration.spec.js#treats
      the tenant scope, which names no record, as one scope
    provenance: test
  - source: >-
      services-platform:modules/extensions/tests/integration/db/extension-bindings.table.integration.spec.js#accepts
      a draft or disabled binding beside an enabled one at the same scope
    provenance: test
  - source: >-
      services-platform:modules/extensions/tests/integration/db/extension-bindings.table.integration.spec.js#accepts
      the same scope in another tenant
    provenance: test
  - source: >-
      services-platform:modules/extensions/tests/integration/db/extension-bindings.table.integration.spec.js#exempts
      a multiple point: two enabled bindings at one scope both stand
    provenance: test
  - source: >-
      services-platform:modules/extensions/tests/integration/db/extension-bindings.table.integration.spec.js#refuses
      a binding of a point that is not registered, with the foreign key’s code
    provenance: test
  - source: >-
      services-platform:modules/extensions/tests/integration/db/extension-bindings.table.integration.spec.js#accepts
      a binding with its defaults: draft, priority 100, the point’s default policy
    provenance: test
  - source: >-
      services-platform:modules/extensions/tests/integration/db/extension-bindings.table.integration.spec.js#refuses
      a status outside the five, by the status check
    provenance: test
  - source: >-
      services-platform:modules/extensions/tests/integration/db/extension-bindings.table.integration.spec.js#refuses
      a tenant scope that names a record, and another scope that names none, by the scope check
    provenance: test
  - source: >-
      services-platform:modules/extensions/tests/integration/db/extension-bindings.table.integration.spec.js#refuses
      a failure policy outside the three, by the failure policy check
    provenance: test
  - source: >-
      services-platform:modules/extensions/tests/integration/db/extension-bindings.table.integration.spec.js#refuses
      a priority outside 0 to 10000, by the priority check
    provenance: test
  - source: >-
      services-platform:modules/extensions/tests/integration/db/extension-bindings.table.integration.spec.js#refuses
      a window that ends before it starts, by the effective check
    provenance: test
  - source: >-
      services-platform:modules/extensions/tests/integration/db/extension-bindings.table.integration.spec.js#refuses
      a handler the tenant does not have, by the handler foreign key
    provenance: test
  - source: >-
      services-platform:modules/extensions/tests/integration/db/extension-bindings.table.integration.spec.js#refuses
      to delete a handler a binding uses, by the handler foreign key
    provenance: test
  - source: >-
      services-platform:modules/extensions/tests/integration/db/extension-bindings.table.integration.spec.js#holds
      both tenants’ bindings, read as the owner, so an empty read below is the policy’s doing
    provenance: test
  - source: >-
      services-platform:modules/extensions/tests/integration/db/extension-bindings.table.integration.spec.js#reads
      nothing as the application role with no tenant and no intake scope
    provenance: test
  - source: >-
      services-platform:modules/extensions/tests/integration/db/extension-bindings.table.integration.spec.js#reads
      every tenant’s bindings inside the intake scope
    provenance: test
  - source: >-
      services-platform:modules/extensions/tests/integration/db/extension-bindings.table.integration.spec.js#updates
      every tenant’s bindings inside the intake scope
    provenance: test
  - source: >-
      services-platform:modules/extensions/tests/integration/db/extension-bindings.table.integration.spec.js#inserts
      nothing inside the intake scope: it opens reads and updates alone
    provenance: test
dependency_evidence:
  provenance: test
  source: >-
    services-platform:modules/extensions/tests/integration/db/extension-bindings.table.integration.spec.js
  reviewed:
    - Suite introduction
    - Fixture setup
    - Client substitutions
    - Assertions and cleanup
---
# extension bindings table

## Verification Boundary

This database and service suite exercises extension bindings table. Its registration records the executable definition; no run result is asserted.

## What This Suite Proves

The suite contains executable checks, but no detailed scenario binding is verified in this pass.

## What It Does Not Prove

In-process execution does not establish deployed infrastructure or a real provider response. Several bindings can supply different parts of a detailed scenario; no single-file completeness is implied.

## Real Dependencies and Test Doubles

The suite definition identifies its database fixtures and replaced clients, hooks, clocks or executors. Integration runs use the prepared database; lifecycle runs exercise the in-process route or adapter path.

## Must Not Be Doubled

The database constraints, transactions and service behavior claimed by an integration binding must execute. Replaced external seams cannot establish live provider or infrastructure behavior.
