---
id: TST-PFM-ELG-485
title: Eligibility plat m11 evaluation 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/plat-m11-evaluation.spec.js
implements: []
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/plat-m11-evaluation.spec.js
    cases:
      - validates with the parameter declared as an integer with a default
      - >-
        validates with the parameter declared as a decimal and no default, the
        binding giving the value
      - >-
        refuses a parameter declared as text for a number, at the condition’s
        value
      - leaves an undeclared parameter to the package’s parameter_unknown alone
      - compiles the binding’s value into the as-of shift
      - compiles the declaration’s default when the binding gives no value
      - >-
        refuses to compile a parameter with neither a value nor a default,
        naming it
      - hashes two bindings’ values to two plans
      - reads gte N as born on or before the day N years back
      - >-
        reads lt N as born after the day N years back, so a 34-year-old is
        younger than 35
      - >-
        reads lte N as born after the day N + 1 years back, so a person on their
        35th birthday is 35 and not over it
      - reads gt N as born on or before the day N + 1 years back
      - 'refuses an operator the template has no reading of, naming it'
      - takes a default for an operator no case names
      - >-
        pins CRM’s current declaration reading lt as it reads gte, which CRM
        must change
      - >-
        compiles a sql condition with null_means false, so a NULL column is not
        met
      - leaves null_means unknown where the template says nullMeans unknown
      - reads nullMeans false and any other annotation as false
      - 'names the field the condition compares, for the statement to read'
      - names the field of the address the addressType picks
      - >-
        names the one field the criteria are about where none is the node’s own
        comparison (an age reads the date of birth)
      - names no field when two fields are compared the same way
      - does not read inside an exists
      - 'names the value the contact’s status held, with its label'
      - >-
        says unknown for a field that held NULL, as for one the statement did
        not read
      - carries the value on the full trace node
      - names the country of the address a country condition read
      - >-
        keeps the value out of a portal sentence of a type whose sensitivity is
        generic
      - says unknown where the statement read no value
      - does not say its clause twice for the template CRM declares today
      - names the value read where the template asks for it
      - reads each operator in its own words with the clause template
      - >-
        is indeterminate with the reason subject_missing, whatever the fold
        would make of the rest
      - 'lets the fail policy decide it, closed being ineligible'
      - tells the administrator the subject was not given
      - >-
        still evaluates a null slot the rule does not require: nothing to be
        true of, so ineligible rather than indeterminate
      - 'keeps the hash, the tree and the node ids the console reads'
      - >-
        leaves out the predicate statements, the provider calls, the SQL
        function and the comparisons
      - >-
        leaves out the sql, function, batch and cache of every condition type of
        the registry
      - >-
        keeps what describes a condition type to the console: label, operators
        and sensitivity
      - >-
        leaves out the explanation template and any property the condition-type
        list does not give
      - 'premise: the registry declares an explain template the redaction removes'
      - 'premise: the full plan carries what the redaction removes'
      - does not change the plan it was given
  - provenance: documented
    source: >-
      services-platform:modules/eligibility/tests/unit/plat-m11-evaluation.spec.js:suite
      header
    note: >-
      The source header describes the verification boundary and declared
      substitutions.
proof_limit: >-
  No complete capability or feature scenario is mapped to this file; case-level
  ownership remains a coverage finding.
---

# Eligibility plat m11 evaluation 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 file contains executable checks, but no complete scenario mapping is established here. Its source test titles identify the remaining mapping work.

## 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.
