@@ -30,9 +30,21 @@ Tests live under `tests/`:
3030 - ` tests/unit/ ` — fast, fully MOCKED, no network. You MAY add a unit test ** in
3131 addition** (often good for edge cases), but it does not satisfy the E2E
3232 requirement above.
33- If the behavior genuinely cannot be observed end-to-end through the connector
34- against the live warehouse, report ` blocked ` and explain why — do ** not**
35- substitute a unit test.
33+ There is ONE carve-out. Some connector bugs are genuinely ** offline-only** —
34+ the correct behavior is a client-side computed artifact, not live-server
35+ behavior: client-side parameter escaping/inlining (` parameters/ ` ), request
36+ construction, retry/backoff math, error-message formatting. For these the
37+ ground truth is the JDBC/DB-API/spec value, not what the warehouse returns, so
38+ an E2E test cannot meaningfully observe the fix. A ** unit test IS sufficient**
39+ for such a bug ** only when both** hold: (a) the expected value is anchored in
40+ an external authority (the issue's stated expectation, a cited spec/PEP, or the
41+ reference JDBC driver — see GROUND TRUTH below), NOT inferred from the current
42+ connector code; and (b) you state explicitly in your reason why the behavior is
43+ not end-to-end observable. Absent an external anchor, a mocked unit test just
44+ agrees with your fix — that's the failure mode this policy exists to prevent.
45+ If the behavior SHOULD be observable end-to-end but you cannot reproduce it
46+ (can't reach the warehouse, can't trigger it), report ` blocked ` and explain why
47+ — do ** not** substitute a unit test to paper over an unreproduced e2e bug.
3648
3749Read ` tests/e2e/ ` for the established patterns (fixtures, the ` self.connection(...) `
3850/ cursor helpers, naming, assertions) and match them. Read ` CONTRIBUTING.md ` for
0 commit comments