v1.3.0 — Coverage 45% → 53%
Closes #30 (meta).
Highlights
- Resizer kernel test suite (#31): first kernel-level coverage of the image-resizer service.
- EntityHelper image/file/media field-getter kernel tests (#32):
getImageField,getFileField,getMediaFieldwith cache-tag bubble assertion. - formatField polymorphic dispatch kernel tests (#34): one test per field-type branch verifies the dispatch wiring.
- ComponentBase form API kernel tests (#35): real
FormStatevalidates the build + submit cycle.
Stats
- 262 tests (+34), 1379 assertions (+403)
- Coverage: 53.03% (+7.15% over v1.2.0; floor 53)
- PHPStan: clean at level 1
- 5 PRs merged: #37, #38, #39, #40, #41
Honest accounting
v1.3.0 spec called for 65%. We landed at 53.03%. The 1:5 test:coverage ratio we observed in v1.2.0 turned out optimistic for the harder paths — Resizer's effect chains and EntityHelper's polymorphic dispatch each cost more than estimated. The remaining 12% to 65% (and the 27% to the original 80%) move to v1.4.0 + v1.5.0.
Deferred to v1.4.0
- buildRemoteVideo (oembed) + buildLottie (#33)
- DisplayBase form API
- Contrib-gated getters (getOfficeHoursField, getAddressField, getGeoField, getPriceField, getWebformField)
- MenuActiveTrailResolver remaining 50% paths
- TypographyExtension::applyTypography variants
- MenuTreeBuilder::renderLinks deep paths