---
id: TST-PFM-ELG-468
title: Eligibility binding fit checks
kind: unit
product_area: platform
module: eligibility
revision: 1
status: draft
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
repository: services-platform
files:
  - modules/eligibility/tests/unit/binding-fit.spec.js
implements:
  - ATS-PFM-ELG-007-03
environment: mock
implementation_state: implemented
latest_result: not-run
conformance: not-verified
estimated_minutes: 1
isolation: One process with suite-local inputs.
evidence:
  - provenance: test
    source: 'services-platform:modules/eligibility/tests/unit/binding-fit.spec.js'
    cases:
      - accepts a rule the kind can evaluate
      - commerce.unit_purchase
      - refuses a kind the registry does not have
      - commerce.unknown
      - refuses a kind of another application than the binding’s
      - commerce.unit_purchase
      - refuses a required slot the kind does not supply
      - commerce.unit_purchase
      - >-
        accepts an optional slot the kind does not supply, which is empty at
        evaluation
      - commerce.unit_purchase
      - refuses a slot the kind supplies as another kind of entity
      - commerce.unit_purchase
      - accepts a fact the kind declares
      - commerce.unit_purchase
      - accepts a fact the rule declares itself
      - commerce.unit_purchase
      - refuses a fact neither the kind nor the rule declares
      - commerce.unit_purchase
      - refuses a type that cannot be evaluated in batch for a population kind
      - commerce.unit_audience
      - accepts that type for a kind that decides one subject at a time
      - commerce.unit_purchase
      - refuses a function type for a kind that decides in SQL only
      - commerce.unit_checkout
      - accepts a binding with no parameters
      - commerce.unit_purchase
      - 'refuses a parameter, which no declaration can take'
      - commerce.unit_purchase
      - accepts values of every declared type
      - refuses a value for a parameter the rule does not declare
      - refuses a required parameter left out
      - accepts a required parameter left out when it has a default
      - refuses a whole number given as a fraction
      - refuses a day that is not YYYY-MM-DD
      - refuses one value where the declaration takes a list
      - refuses a list where the declaration takes one value
      - refuses a value that is not one of the declared options
      - refuses a number below the declared minimum
      - refuses a number above the declared maximum
      - names the replacement in a reference that follows the published version
      - leaves a reference that pins a version as it is
      - leaves a reference to another definition as it is
      - renames a reference nested inside groups
  - provenance: documented
    source: >-
      services-platform:modules/eligibility/tests/unit/binding-fit.spec.js:suite
      header
    note: >-
      The source header describes the verification boundary and declared
      substitutions.
proof_limit: >-
  Only the named scenario checkpoints have a verified source binding; execution
  has not been attempted.
---

# Eligibility binding fit checks

## Verification Boundary

This suite checks isolated decisions and validation using the imported inputs. It cannot establish a complete service or browser lifecycle.

## What This Suite Proves

The mapped scenarios identify the capability and feature checkpoints this file exercises. The source test titles preserve the assertion-level evidence.

## What It Does Not Prove

Registration supplies no execution result or conformance decision. Passing isolated checks does not establish deployed dependencies or cross-application delivery.

## Real Dependencies and Test Doubles

The suite runs isolated checks; its imported fixtures and injected collaborators define the substitutions. The source imports and suite header identify the exact dependencies.

## Must Not Be Doubled

The decision or validator being asserted remains real; returning the expected answer from a substitute defeats the check.
