---
id: TST-PFM-INT-582
title: registration rules
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/registration-rules.spec.ts
implements:
  - ATS-PFM-INT-001-01
  - ATS-PFM-INT-001-02
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/registration-rules.spec.ts'
test_cases:
  - source: >-
      services-platform:modules/integrations/tests/unit/services/registration-rules.spec.ts#sorts every
      object’s keys, at every depth, and writes no whitespace
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/registration-rules.spec.ts#is the same
      whatever order the keys were written in
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/registration-rules.spec.ts#leaves out a
      property whose value is undefined, as JSON does
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/registration-rules.spec.ts#is SHA-256 in
      lowercase hex
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/registration-rules.spec.ts#lets an
      adapter register its own key
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/registration-rules.spec.ts#refuses an
      adapter registering another key
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/registration-rules.spec.ts#lets
      svc_platform register in development
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/registration-rules.spec.ts#refuses
      svc_platform in production
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/registration-rules.spec.ts#refuses a
      service that is not an adapter
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/registration-rules.spec.ts#accepts the
      adapter’s own principal, its runtime and this environment
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/registration-rules.spec.ts#refuses a
      principal that is not the adapter’s
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/registration-rules.spec.ts#refuses an
      environment that is not this one
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/registration-rules.spec.ts#refuses an
      externally hosted adapter, which arrives later
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/registration-rules.spec.ts#accept the
      package’s own example
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/registration-rules.spec.ts#refuse a
      capability major the contracts do not define
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/registration-rules.spec.ts#refuse a
      feature the capability does not define
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/registration-rules.spec.ts#refuse
      contracts newer than the ones Platform is built with
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/registration-rules.spec.ts#know
      contracts 0.8.0
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/registration-rules.spec.ts#accept an
      adapter compiled against exactly the contracts Platform knows
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/registration-rules.spec.ts#refuse an
      adapter compiled against the next patch
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/registration-rules.spec.ts#refuse a
      manifest the schema refuses, naming the problem
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/registration-rules.spec.ts#orders by
      major, minor and patch
    provenance: test
  - source: >-
      services-platform:modules/integrations/tests/unit/services/registration-rules.spec.ts#puts a
      pre-release before its release
    provenance: test
dependency_evidence:
  provenance: test
  source: 'services-platform:modules/integrations/tests/unit/services/registration-rules.spec.ts'
  reviewed:
    - Suite introduction
    - Fixture setup
    - Client substitutions
    - Assertions and cleanup
---
# registration rules

## Verification Boundary

This unit suite exercises registration rules. 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.
