wrolpi/app/src/components
Roland b15a9408f1
test: act on review — the skeleton guard was reading the wrong layer
The "separates the skeleton from the panel" cases could not fail.  A Skeleton
is three layers: the element paints nothing, ::before paints
--mantine-color-body (`--bg`) at z-index 10, and ::after paints the bar the
user actually sees (`--head` in light, `--border` in dark) at z-index 11, on
top.  `paintedBackground` walked outward from the element and returned the
first paint, which is ::before -- so all four cases compared the page
background to the panel.  Those differ by design in every theme, so the bars
could have collapsed into the panel entirely and every assertion stayed green.

My planted regression did not catch it because the plant was broader than the
claim: it forced all three layers to the panel colour, so the test went red
for a reason the fix did not depend on.  The plant now sets only ::after, and
a second plant sets only ::before and must stay GREEN.

The layer order is now the caller's argument, since "the background" is
ambiguous once pseudo-elements are involved and guessing makes a test vacuous
rather than wrong.

Also from review:

The disc on a filled button was pinned to `--blue` at the call site, but WROL
mode disables that button and Mantine repaints it `--mantine-color-disabled`
-- a blue chip on a grey button, the original hole inverted.  The surface now
comes from the cascade (`--button-bg`, and the disabled colour for any
variant), so the call site says nothing at all and cannot be wrong about a
state it does not control.  Keying on `[data-variant="filled"]` alone matched
none of our buttons: Mantine omits the attribute when a call site names a
colour but no variant, which is how every filled button here is written.

The Checkbox behaviour test asserted only that a handler fired, against a box
held at `checked={false}` that could never change.  It is now uncontrolled and
asserts the box is checked, plus a second test that the handler sees the new
state -- read inside the handler, because `currentTarget` is null by the time
a mock is inspected.

The empty-caption test counted every div in the container; it counts the
loader's siblings now.  Two comments corrected: Pill emits no `--pill-radius`
at all and its own stylesheet falls back to `1000rem`, and the nav bar no
longer relies on the default surface.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-08 18:05:45 -06:00
..
admin ui: name the directory fields, announce their help text, let long prefixes shrink 2026-08-08 18:04:04 -06:00
calculators ui: thirty-five files off Semantic, leaving fifteen 2026-08-08 18:04:01 -06:00
collections build: uninstall Semantic UI 2026-08-08 18:04:03 -06:00
inventory ui: thirty-five files off Semantic, leaving fifteen 2026-08-08 18:04:01 -06:00
ui test: act on review — the skeleton guard was reading the wrong layer 2026-08-08 18:05:45 -06:00
AddToPlaylist.js ui: Common.js and thirteen more files off Semantic 2026-08-08 18:04:00 -06:00
Apps.js ui: Common.js and thirteen more files off Semantic 2026-08-08 18:04:00 -06:00
Archive.js ui: bring back the card mimetype accent 2026-08-08 18:04:03 -06:00
ArchivePreview.js ui: Common.js and thirteen more files off Semantic 2026-08-08 18:04:00 -06:00
BulkTagModal.js ui: migrate Downloads, Upload, and BulkTagModal off Semantic 2026-08-08 18:04:02 -06:00
BulkTagModal.test.js ui: migrate Downloads, Upload, and BulkTagModal off Semantic 2026-08-08 18:04:02 -06:00
Calculators.js ui: fix the cypress failures, and two real defects behind them 2026-08-08 18:04:01 -06:00
CbzViewer.js ui: Common.js and thirteen more files off Semantic 2026-08-08 18:04:00 -06:00
Channels.cy.js Moving form fields. 2025-12-06 15:11:37 -07:00
Channels.js ui: Channels.js and Playlists.js off Semantic 2026-08-08 18:04:01 -06:00
Common.js ui: two more labels were painting text with an inline colour, and shorthand hex 2026-08-08 18:05:44 -06:00
Common.test.js ui: two more labels were painting text with an inline colour, and shorthand hex 2026-08-08 18:05:44 -06:00
DatesSelector.js ui: thirty-five files off Semantic, leaving fifteen 2026-08-08 18:04:01 -06:00
DesktopToggle.test.js ui: Common.js and thirteen more files off Semantic 2026-08-08 18:04:00 -06:00
Docs.js ui: migrate Docs.js and Zim.js off Semantic UI React 2026-08-08 18:04:01 -06:00
DomainEditPage.test.js app: handle form fetch failures without unhandled rejection 2026-07-16 19:40:28 -06:00
DomainsPage.test.js Reformatting code. 2025-12-06 15:11:37 -07:00
DomainTagging.test.js test: one place for fixtures, real providers instead of mocked context modules 2026-08-08 18:04:04 -06:00
DonatePage.js ui: nine leaf files off Semantic, and the components they needed 2026-08-08 18:04:00 -06:00
Download.cy.js build: uninstall Semantic UI 2026-08-08 18:04:03 -06:00
Download.js ui: thirty-five files off Semantic, leaving fifteen 2026-08-08 18:04:01 -06:00
Download.test.js Reformatting code. 2025-12-06 15:11:37 -07:00
ErrorBoundary.js ui: nine leaf files off Semantic, and the components they needed 2026-08-08 18:04:00 -06:00
FileBrowser.js test: act on review — the skeleton guard was reading the wrong layer 2026-08-08 18:05:45 -06:00
FileBrowser.test.js test: the theme drives the colour scheme, and mockModule takes the module 2026-08-08 18:04:04 -06:00
FilePreview.js ui: FileBrowser.js and FilePreview.js off Semantic 2026-08-08 18:04:02 -06:00
FilePreview.test.js File preview: Open in Slicer button for STL/3MF files. 2026-07-05 13:31:40 -06:00
Files.js ui: bring back the card mimetype accent 2026-08-08 18:04:03 -06:00
Flasher.js ui: two more labels were painting text with an inline colour, and shorthand hex 2026-08-08 18:05:44 -06:00
Flasher.test.js ui: migrate Flasher.js off Semantic UI React 2026-08-08 18:04:02 -06:00
Headline.js ui: nine leaf files off Semantic, and the components they needed 2026-08-08 18:04:00 -06:00
HelpModal.js ui: thirty-five files off Semantic, leaving fifteen 2026-08-08 18:04:01 -06:00
KeyboardShortcutsProvider.js ui: fix the cypress failures, and two real defects behind them 2026-08-08 18:04:01 -06:00
Map.js ui: thirty-five files off Semantic, leaving fifteen 2026-08-08 18:04:01 -06:00
MapSearchView.js ui: thirty-five files off Semantic, leaving fifteen 2026-08-08 18:04:01 -06:00
MapViewer.js ui: thirty-five files off Semantic, leaving fifteen 2026-08-08 18:04:01 -06:00
Nav.js ui: test the last four components, and put the last four in the gallery 2026-08-08 18:05:45 -06:00
otp.js Move One-Time Pad encryption to the browser (#479) 2026-06-13 13:52:34 -06:00
otp.test.js Move One-Time Pad encryption to the browser (#479) 2026-06-13 13:52:34 -06:00
Placeholder.js ui: Common.js and thirteen more files off Semantic 2026-08-08 18:04:00 -06:00
Playlists.js ui: Channels.js and Playlists.js off Semantic 2026-08-08 18:04:01 -06:00
Playlists.test.js Add ordered collections (playlists): polymorphic items + item API (#475) 2026-06-11 19:46:34 -06:00
Search.js ui: fix the cypress failures, and two real defects behind them 2026-08-08 18:04:01 -06:00
SearchFilterModal.test.js ui: thirty-five files off Semantic, leaving fifteen 2026-08-08 18:04:01 -06:00
Share.js ui: nine leaf files off Semantic, and the components they needed 2026-08-08 18:04:00 -06:00
ShortcutHint.js Displaying cmd+k/ctrl+k global search keyboard shortcut suggestion. 2026-02-23 16:07:22 -07:00
SortableTable.js ui: nine leaf files off Semantic, and the components they needed 2026-08-08 18:04:00 -06:00
Tables.js ui: nine leaf files off Semantic, and the components they needed 2026-08-08 18:04:00 -06:00
TaggedDeleteConfirmModal.js ui: Common.js and thirteen more files off Semantic 2026-08-08 18:04:00 -06:00
TaggedDeleteConfirmModal.test.js Models like Archive/Video/Doc can be deleted, even if they are tagged. User is shown a warning and must confirm deletion of tagged files. 2026-05-03 19:14:15 -06:00
Theme.tsx ui: toasts move to the top right, get readable titles, and get tests 2026-08-08 18:05:44 -06:00
ThemeProvider.test.js test: act on review — observe the wiring, and stop the soft assertions 2026-08-08 18:05:45 -06:00
ThemeSamplePage.js ui: test the last four components, and put the last four in the gallery 2026-08-08 18:05:45 -06:00
Upload.js ui: migrate Downloads, Upload, and BulkTagModal off Semantic 2026-08-08 18:04:02 -06:00
Vars.js Restore "Most Views" download order 2026-07-07 16:34:50 -06:00
VideoPlayer.js ui: migrate VideoPlayer.js off Semantic UI React 2026-08-08 18:04:01 -06:00
VideoPlayer.test.js videos: address review — tighten auto-caption detection 2026-07-16 18:29:18 -06:00
Videos.js ui: Statistic and StatisticGroup, and the four defects they had 2026-08-08 18:05:44 -06:00
VncToggle.test.js ui: Common.js and thirteen more files off Semantic 2026-08-08 18:04:00 -06:00
Zim.js ui: migrate Docs.js and Zim.js off Semantic UI React 2026-08-08 18:04:01 -06:00