mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-09 13:01:00 +00:00
The inventory had a BUILDER-GATED bucket that accepted the mere presence of an aggregator's name -- loadFhirContext, collectDoctorReportData -- as proof a route was gated. That proved nothing. loadFhirContext filtered per-domain modules but never evaluated doctorReport, so all five /api/fhir data routes sat in a green bucket while serving the whole record to an account that had the module off. Drop the bucket. A route now counts as gated only when it calls a gate, and the orphan message says plainly that importing a module-aware builder is not one. Add two assertions the old shape could not make. REQUIRED_TREE_MODULE pins a tree to the key its routes must name, so /api/fhir cannot satisfy the inventory by gating on some other, more permissive module. BEHAVIOURAL_GATE_TESTS lists the tests that actually exercise a disabled module end to end and fails if one goes missing, since this file reads source text and can never prove a refusal itself. Verified by removing the gate from the Patient route with the builder import left in place: the old inventory passed, this one names the file.