Review finding 19/19 · conventional-comment issue (test) · area binder · gate: follow-up
To add once they exist: labels binder, test. (Already applied: bug.)
Problem
Two behaviors are not asserted despite 100% line/branch coverage:
- A required list that is present but empty currently binds as success — this boundary is neither tested nor documented (is an empty required list valid?).
FirstClassErrors.PropertyTests exercises no binder invariant (for example "collect-all reports exactly one error per invalid field", or "paths are stable under element reordering").
Impact
Coverage measures execution, not assertion: the empty-required-list contract can change silently, and no property-based test guards the binder's core invariants against regression.
Direction
Decide and document whether an empty required list is valid, add a test pinning that contract, and add a small set of property-based invariants for collect-all and path stability.
Context
Surfaced by the RequestBinder review (design spec #126, shipped in #141). Finding 19 of 19.
Problem
Two behaviors are not asserted despite 100% line/branch coverage:
FirstClassErrors.PropertyTestsexercises no binder invariant (for example "collect-all reports exactly one error per invalid field", or "paths are stable under element reordering").Impact
Coverage measures execution, not assertion: the empty-required-list contract can change silently, and no property-based test guards the binder's core invariants against regression.
Direction
Decide and document whether an empty required list is valid, add a test pinning that contract, and add a small set of property-based invariants for collect-all and path stability.
Context
Surfaced by the RequestBinder review (design spec #126, shipped in #141). Finding 19 of 19.