Repository navigation
test(frontend/mobile): regression coverage for #989 44x44 touch minimums on .btn-small / .toggle-password / .modal-confirm-close (refs #983) - #1499
Conversation
…ums on .btn-small / .toggle-password / .modal-confirm-close (refs #983) Issue #983 asked for min-height:44px on these three selectors. Verified they already inherit the 44x44 minimum on touch devices from the generic `button` rule PR #989 added under @media (pointer: coarse), since all three render as plain <button> elements and no rule overrides min-height/min-width on them. Add a regression test so a future edit can't silently reintroduce a sub-44px override.
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 16 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
@coderabbitai review |
✅ Action performedReview finished.
|
…983) The test.each list asserting .btn-small / .toggle-password / .modal-confirm-close declare no sizing props collides with PR #985 (bottom-sheet modal), which gives .modal-confirm-close its own explicit min-width/min-height: 44px (needed since it is absolutely positioned, not sized by content). With both merged, this test goes red. Drop .modal-confirm-close from the list: its explicit 44x44 is a stronger, more direct guarantee than inheriting from the generic coarse-pointer rule, not a regression. .btn-small and .toggle-password still verify against the shared rule as before.
Adversarial review finding (MEDIUM) and fixAn adversarial Opus review flagged that this PR's Fix: dropped Cross-PR interaction with #1497: verified in a local merge simulation (fetch both branches, merge #1499's branch onto #1497's branch) that the merge is clean and the full Gates run locally: |
|
@coderabbitai review |
✅ Action performedReview finished.
|
Summary
Issue #983 asked for
min-height: 44pxon.btn-small,.toggle-password, and.modal-confirm-closeto meet the iOS HIG / WCAG 2.5.5 44x44 touch-target minimum.Investigation found this is already fixed: PR #989 (merged 2026-06-08, three days after #983 was filed) added a generic rule to
frontend/src/styles/responsive.css:All three selectors render as plain
<button>elements in the markup (recommendations.ts,auth.ts,confirmDialog.ts), and no other CSS rule setsmin-height/min-width/height/widthon any of them (verified with a postcss AST scan across all style files), so they already inherit the 44x44 minimum on touch devices without a class-specific rule. Adding a duplicate rule would just shadow the existing one.Fix
No production CSS change. Adds a regression test to
frontend/src/__tests__/css.test.ts:@media (pointer: coarse)block inresponsive.csssetsmin-height: 44px/min-width: 44pxon generic button selectors..btn-small,.toggle-password,.modal-confirm-closedo not declare their ownheight/width/min-height/min-width(which would override the coarse-pointer minimum by specificity and silently regress mobile: touch targets below 44pt on .btn-small, .toggle-password, .modal-confirm-close #983).Test plan
npx tsc --noEmitcleannpx jest src/__tests__/css.test.tspasses (82/82)min-heightoverride is manually injected into.btn-small, and passes once revertednpx jestrun shows the same 8 pre-existing failures (locale/Intl formatting, unrelated) with and without this changeCloses #983