Recorded engineering evidence
Automated validation
43 passed · 0 failed · 43 checks
This is a recorded local test run, not a live production monitor. Inquiry tests use synthetic data and simulated email responses. Browser checks and the September 9, 2026 controlled inbox test are reported separately in the case study.
Run details
- Completed (UTC)
- Command
npm run validation:report- Runner
- Node.js test runner with tsx; tests/*.test.ts
- Runtime
- Node.js 24.9.0 · Next.js 15.5.24 · React 19.2.8
- Platform
- darwin / arm64
- Storage
- Isolated local SQLite test databases
- Simulated provider responses
- Source SHA-256
407920df7c5c8957cb7e1b4978ad4bfc231bc5d407441992fa984db5927124c5
The fingerprint covers application code, catalog, scripts, tests and dependency manifests. The report contains result metadata only; raw test logs and inquiry records are excluded.
Individual results
- Catalog rejects duplicate identities, URLs, ordering, missing covers and malformed dimensions — passed
- Photo and series identities survive renamed slugs and rearranged display order — passed
- Build prepares only published imports and rejects missing delivery assets or stale dimensions — passed
- Collections resolve an explicit cross-shoot sequence without changing canonical photo records — passed
- Collection validation rejects missing, duplicate, cross-source and unavailable references — passed
- Unlisted old series stay routable; new source-only series do not gain routes or inquiry references — passed
- Configured featured works resolve and preserve the single 16-photo Graduation collection — passed
- Hero curation resolves the configured distinct published landscape photographs with descriptive alternatives — passed
- Slideshow navigation wraps in both directions and skips failed photographs — passed
- T06 multilingual names and empty optional fields are accepted — passed
- T07 runtime validation catches wrong types, email, length, enum, impossible date, and extra data — passed
- T04/T05 public references are allowlisted, arbitrary objects and traversal are rejected — passed
- T08 simultaneous requests create exactly one durable record; a restart can replay the receipt — passed
- T08 same key different payload conflicts; same email with a new key is allowed — passed
- T09 failed storage cannot return a successful receipt — passed
- Rate limiting is durable and retries do not consume another slot — passed
- T10 failure preserves the record; concurrent workers send once and explicit retry recovers — passed
- T10 uncertain sends and interrupted workers require review before resend — passed
- Preview notification processing does not claim acceptance — passed
- Retention removes only resolved old records and retains unresolved notifications — passed
- T02 catalog photos exist, are nonempty, and all covers belong to the series — passed
- Outbox processing finds an old pending record behind more than 100 resolved records — passed
- Reference display name is resolved by the server and preserved with the inquiry — passed
- Resend adapter uses a fixed recipient/subject, plain text and a stable provider idempotency key — passed
- A Vercel runtime fails closed without durable remote storage — passed
- Operator review exports one private record without overwriting files or changing notification state — passed
- Public series have unique routes and stable inquiry IDs; featured order is explicit — passed
- Publication and curated sorting apply before route lookup; renaming a slug preserves identity — passed
- Sitemap and public API expose the same published series links — passed
- Stored return positions reject unsafe paths, malformed values and expired visits — passed
- Local photo dimensions match oriented files; remote delivery preserves series identity and order — passed
- Delivery assets reject unapproved hosts, mutable paths and malformed dimensions — passed
- T06/T08 receipt comes after persistence, is retry-safe, and never returns customer data — passed
- Local loopback aliases are accepted for the same port — passed
- T07/T11 route rejects cross-origin, invalid content type, extra privileged fields, malformed and oversized bodies — passed
- T05 stale reference returns a correctable field error and creates no record — passed
- Production notification attempts run after persistence; retries do not resend accepted jobs and failures still return a receipt — passed
- Production environment values with surrounding whitespace still send the saved inquiry once — passed
- T09 database failure produces an uncertain-receipt error, never success — passed
- Studio validates selections, own-series covers, ordering and both crop bounds — passed
- Curation changes public covers and featured order while preserving photo order and URLs — passed
- Local editor is disabled in production and rejects remote hosts and cross-site requests — passed
- Atomic save backs up the prior version; stale, concurrent and invalid writes cannot overwrite it — passed