---
id: TST-PFM-LLM-024
title: Database checks for Evidence Access
kind: integration
product_area: platform
module: llm
revision: 1
status: draft
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
repository: services-platform
files:
  - modules/llm/tests/integration/services/evidence/evidence-access.integration.spec.js
implements:
  - ATS-PFM-LLM-016-01
  - ATS-PFM-LLM-016-02
  - ATS-PFM-LLM-016-03
  - ATS-PFM-LLM-016-04
environment: local
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 3
isolation: Prepared local test database with suite-owned records and scoped cleanup.
evidence:
  - provenance: test
    source: 'services-platform:modules/llm/tests/integration/services/evidence/evidence-access.integration.spec.js'
source_boundary:
  provenance: observed
  source: 'services-platform:modules/llm/tests/integration/services/evidence/evidence-access.integration.spec.js'
---

# Database checks for Evidence Access

## Verification Boundary

The suite checks module persistence or service behavior against prepared PostgreSQL with scoped records.

## What This Suite Proves

Content access requires a live eligible grant. Handled content reads have content-free audit events. Unavailable bodies return their status. Not-found content follows eligible access. Combined bindings require every named suite; a component assertion alone does not establish the full experiment.

## What It Does Not Prove

The suite does not establish browser behavior, deployed routing, live model quality or actual recipient inbox delivery.

## Real Dependencies and Test Doubles

PostgreSQL, production content access, real staff-grant persistence and AI audit writes are real. Evidence storage is in memory; mail and job-start ports record calls rather than contacting external services.

## Must Not Be Doubled

Retain PostgreSQL constraints, transaction behavior and the production persistence or dispatcher path under test. A scripted provider must not replace accounting or authorization.
