Skip to content

docs: capture the TDD pattern for source-level parity gaps - #42

Merged
aesslinger merged 2 commits into
mainfrom
docs/parity-tdd-pattern
Aug 19, 2026
Merged

docs: capture the TDD pattern for source-level parity gaps#42
aesslinger merged 2 commits into
mainfrom
docs/parity-tdd-pattern

Conversation

@aesslinger

Copy link
Copy Markdown
Collaborator

Summary

#34/#36/#38/#39 (mTLS client-cert not honored, pool cache key ignoring TLS params, verify-ca enforcing hostname checks, MONEY decoding to null) were all found by a full source-level audit against the builtin's actual Rust source (pool_manager.rs, drivers/postgres/) — not by the 82-test SQL-text parity suite, since every one lived in a code path that suite doesn't exercise directly (TLS/pool-config semantics, extract.rs's wire-format type dispatch).

Added two entries to CLAUDE.md's "Key Patterns" section:

  • Parity gaps beyond SQL text — where to look next time (connection/TLS config, extract.rs's Type:: dispatch), since these are exercised by config values/column types rather than query shape.
  • TDD for parity bugs without a live database — how each bug was proven with a standalone unit test before fixing, even though the real failure only manifests during a live TLS handshake or live column read (construct the verifier/type directly, feed it real fixture bytes).

Docs-only, no behavior change.

Test plan

  • npx markdownlint CLAUDE.md — clean

#34/#36/#38/#39 all came from a full source-level audit against the
builtin's actual Rust (pool_manager.rs, drivers/postgres/), not from
the 82-test SQL-text parity suite -- every one lived in a code path
that suite doesn't exercise (TLS/pool-config semantics, extract.rs's
wire-format type dispatch). Recording where to look and how each was
proven with a standalone unit test (no live DB/TLS handshake needed)
so the next parity audit starts from this pattern instead of
rediscovering it.
@aesslinger aesslinger added the prerelease:alpha Version suggestion targets an alpha prerelease label Aug 19, 2026
@aesslinger aesslinger self-assigned this Aug 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

prerelease:alpha Version suggestion targets an alpha prerelease

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant