test: lock in the field-specific startup error with static, mutation and deterministic probes (E00-S04-T02)

- tests/config-startup-error.test.mjs: static assertions on the committed
  startup-error module, the package boundary, the server wiring (validation
  before bind), the compose secret and the Dockerfile shipping, each backed
  by mutation probes; the deterministic probes execute the issue's test plan
  ("start with a missing required field and confirm the error names it") —
  the compiled boundary throws MissingRequiredSettingError naming
  sessionSecret, and booting the committed server without EPPP_SESSION_SECRET
  exits non-zero naming the field while a valid secret boots to /health 200
- health-endpoint/app-readiness boot probes: provide a valid
  EPPP_SESSION_SECRET (the required setting is validated at startup)
- ci.yml: new config-startup-error job (builds config + database-postgres,
  runs the suite); app-readiness job now builds the config package too
- .gitignore: transient .config-startup-probe-*.mjs files
This commit is contained in:
implementer
2026-08-30 03:00:45 +00:00
parent 0ce790fca3
commit 1a9fd592d9
5 changed files with 695 additions and 10 deletions
+4
View File
@@ -23,5 +23,9 @@ coverage/
# the package (removed in its finally block)
.config-schema-probe-*.mjs
# Transient host-side probe file written by the config-startup-error test
# suite into the package (removed in its finally block)
.config-startup-probe-*.mjs
# OS / editor
.DS_Store