post composer: restore validation-error reveal broken by the .composer-row wrap; CI FT cleanup — TDD
The OK-button composer redesign wrapped the line input in .composer-row, so the .form-control.is-invalid input is no longer a general SIBLING of its .invalid-feedback — the `&.is-invalid ~ .invalid-feedback` reveal (\_base.scss) silently stopped matching, so post-line validation errors rendered in the DOM but stayed display:none (invisible to users). Reveal via `.composer-row:has(.form-control.is-invalid) ~ .invalid-feedback`. Greens test_cannot_add_duplicate_lines + test_error_messages_are_cleared_on_input (both were catching this real regression, not flaky).
Harden WalletShopFreeDeckTest: the .tt-micro is briefly detached mid-HTMX-swap, so get_attribute('innerHTML') returns None and a bare assertIn raises TypeError — which wait_for does NOT retry. Coalesce to '' so it polls until the swap settles (explains the local-pass / CI-fail).
Delete test_core_styling.test_layout_and_styling: a Percival-era assertion that the post input is horizontally CENTRED in its section. The responsive .composer-row (input + OK btn) + the orientation-aware right-margin clamp intentionally removed that invariant (the input now lands in different spots per viewport). Zero behavioural coverage lost — the composer is covered by LineValidationTest + PostComposerOkButtonTest.
Skip GameViewsCarouselTest (red planning contract for the unbuilt Game-views carousel — see project-room-game-views-carousel).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -184,6 +184,16 @@ body {
|
||||
margin-top: 0.25rem;
|
||||
}
|
||||
|
||||
// The post composer wraps its input + OK btn in `.composer-row`, so the
|
||||
// `.form-control.is-invalid` input is no longer a general SIBLING of its
|
||||
// `.invalid-feedback` (they live in different parents) — the
|
||||
// `&.is-invalid ~ .invalid-feedback` reveal above silently stops
|
||||
// matching, so the error renders in the DOM but stays display:none and
|
||||
// the user never sees post-line validation. Reveal via :has() on the row.
|
||||
.composer-row:has(.form-control.is-invalid) ~ .invalid-feedback {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.alert {
|
||||
padding: 0.75rem 1rem;
|
||||
margin: 0.75rem;
|
||||
|
||||
Reference in New Issue
Block a user