---
id: TST-PFM-ELG-427
title: Eligibility versions table checks
kind: integration
product_area: platform
module: eligibility
revision: 1
status: draft
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
repository: services-platform
files:
  - >-
    modules/eligibility/tests/integration/db/eligibility-versions.table.integration.spec.js
implements: []
environment: local
implementation_state: implemented
latest_result: not-run
conformance: not-verified
estimated_minutes: 5
isolation: Prepared local test database with suite-owned fixture keys and cleanup.
evidence:
  - provenance: test
    source: >-
      services-platform:modules/eligibility/tests/integration/db/eligibility-versions.table.integration.spec.js
    cases:
      - modules/eligibility/db/eligibility-versions.table.ts
      - >-
        accepts a published version beside the draft, so each refusal below is
        about what it spoils
      - 'refuses a second draft of the same definition, by the one-draft index'
      - >-
        accepts a draft of another definition beside this one’s, because the
        index is per definition
      - 'refuses a version number the definition already has, by the number key'
      - 'refuses version number zero, by the version number check'
      - 'refuses a status outside the four, by the status check'
      - 'refuses an expression that is an array, by the expression check'
      - 'refuses a hash that is not a sha256 in hex, by the hash check'
      - 'refuses a range that ends on the day it starts, by the range check'
      - >-
        refuses a published version with no publish stamp, by the published
        check
      - 'refuses a draft that carries a publish stamp, by the published check'
      - 'refuses a definition that does not exist, by the definition foreign key'
      - >-
        refuses a blank summary: the trigger nulls it and the column refuses the
        null
      - goes with its definition when the definition is deleted
      - >-
        holds both tenants’ versions, read as the owner, so the confinement
        below is the policy’s doing
      - reads only the acting tenant’s versions
      - reads nothing at all with no tenant
      - 'refuses a write for another tenant, by the policy'
  - provenance: documented
    source: >-
      services-platform:modules/eligibility/tests/integration/db/eligibility-versions.table.integration.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 versions table checks

## Verification Boundary

This suite checks the module through real local service and database code at the entry points used by its test cases.

## 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. Checks beyond the file’s reachable assertions remain unverified, including production configuration.

## Real Dependencies and Test Doubles

The suite exercises its real module dependencies and declares no test doubles. Its source header and imports identify the database, transaction and service boundaries it uses.

## Must Not Be Doubled

The module behavior under assertion, transaction boundary and database constraint being checked remain real. Fixture setup cannot stand in for the asserted write or refusal.
