---
id: TST-PFM-INT-520
title: connection jobs
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/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js
implements:
  - ATS-PFM-INT-004-01
  - ATS-PFM-INT-004-03
  - ATS-PFM-INT-004-10
  - ATS-PFM-INT-006-03
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/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js
test_cases:
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#is
      created verifying, with its verification job
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#names
      every problem of the settings in one 400, the unknown property included
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#refuses
      a second connection whose name derives to an id the tenant holds, and accepts the same name with an
      explicit id
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#becomes
      active with the account and every declared feature verified
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#asks
      the adapter connection.verify with the version’s capabilities and their declared features
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#creates
      one webhook endpoint row per kind the manifest declares, with no secret yet
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#records
      its life in the audit trail, in order
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#records
      the outcome on its job
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#moves
      the connection to failed_verification when the adapter refuses
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#moves
      it to failed_verification at once, naming the cause, when the account is already connected under
      the installation
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#moves
      it to failed_verification when the answer is not a connection.verify result
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#fails
      it with the classified reason when the adapter’s function cannot be found (the runtime’s Lambda
      transport)
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#retries
      on request and becomes active when the adapter answers
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#is
      recorded as features_changed, naming what each capability lost
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#tells
      the binding hook which features were lost
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#tells
      the tenant’s administrators
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#keeps
      the connection active, with the features it still has
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#degrades
      an active connection whose provider is unhealthy
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#moves
      an active connection to reauth_required when the provider answers refused.credential_invalid, and
      tells the administrators
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#moves
      an active connection to reauth_required when the provider answers refused.credential_revoked, and
      tells the administrators
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#moves
      a degraded connection to reauth_required when the provider refuses the credential
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#only
      degrades an active connection whose provider refuses for another reason
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#recovers
      a degraded connection whose provider is healthy again
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#refuses
      to probe a connection that is not active or degraded
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#refuses
      a suspended connection with a 409 naming the state, and keeps the pin
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#moves
      the pin to the new version when it verifies
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#keeps
      the pin when the new version does not verify, and says why
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#refuses
      a version that asks for access the installation has not accepted, naming it, and starts no job
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#moves
      the pin to a version that asks for more access once the administrator has accepted it
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#moves
      the pin to a version that asks for no more than the one before, whatever the administrator narrowed
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js#refuses
      a version that is not published
    provenance: test
dependency_evidence:
  provenance: test
  source: >-
    services-platform:modules/integrations/tests/integration/services/connections/connection-jobs.integration.spec.js
  reviewed:
    - Suite introduction
    - Fixture setup
    - Client substitutions
    - Assertions and cleanup
---
# connection jobs

## Verification Boundary

This database and service suite exercises connection jobs. 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

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.
