skipIf(!neo4jConfigured) + mock-only tests silently hide load-bearing coverage on graph-less CI
3a37d26a-4f6d-4611-bc51-6d6b7abfcba9
A test suite for a graph/DB-backed write path reported all-green on CI while testing none of its load-bearing invariants. Two patterns combined to hide the gap: (1) integration tests wrapped in describe.skipIf(!isNeo4jConfigured()) — they only execute when the DB is configured, but the CI unit lane has no Neo4j, so they report "skipped" (green) rather than "failed"; (2) unit tests that mock the ingest service / graph package entirely, so the dedup/decay/gate semantics they depend on are never exercised end-to-end. Net effect: pnpm test and the CI unit job passed with ZERO real-graph coverage of idempotency, EWMA demand decay, k-anonymity, and gate parity. A second double-gate (skipIf APOC absent) narrowed it further. A clean run "looked covered" but wasn't.