Files
pulse/tests
rcourtman 469691bc74 frontend(platforms): add v5-style operator toolbar to UnifiedResourceTable platform sub-tabs
Closes the second half of the v5→v6 affordance bridge. The first commit
in this chain (65b069dbb) brought operator controls to the embedded
Workloads/Storage sub-tabs (Docker Containers, K8s Pods, TrueNAS
Storage/Apps, vSphere VMs/Storage). The UnifiedResourceTable-backed
sub-tabs (Docker Hosts, K8s Clusters/Nodes/Deployments, vSphere Hosts)
were left with the table's built-in sort handles only — no search, no
status chips, no counters — which read as a non-native experience
against the v5 dashboard/storage filter density.

Extend the shared PlatformResourceTable in
`frontend-modern/src/features/platformPage/sharedPlatformPage.tsx`
with a canonical operator toolbar:

- SearchInput (the canonical primitive, with the standard placeholder
  + clear-on-escape semantics) for name/display-name/id/parent/tags
  search.
- FilterButtonGroup status chip strip: All / Online / Degraded /
  Offline, with the per-platform status vocabulary (running, paused,
  stopped, etc.) collapsed through the shared
  `mapResourceStatusToTriad` helper.
- Compact "N of M rows" counter on the right of the toolbar so
  operators can read total / matching at a glance without spawning a
  card grid.
- Client-side filtering via `filterPlatformResources` before resources
  reach UnifiedResourceTable, so the canonical table stays the data
  surface and the platform page owns the chrome.

Every platform sub-tab now exposes operator controls:

- Docker Hosts (UnifiedResourceTable + new toolbar)
- Docker Containers (WorkloadsSurface canonical toolbar)
- Kubernetes Clusters/Nodes/Deployments (UnifiedResourceTable + new
  toolbar)
- Kubernetes Pods (WorkloadsSurface canonical toolbar)
- TrueNAS Storage/Apps (canonical toolbars)
- vSphere Hosts (UnifiedResourceTable + new toolbar)
- vSphere VMs/Storage (canonical toolbars)

Browser verification (Playwright, chromium, live mock-mode):
- Expanded the operator-controls audit to cover every populated sub-tab
  route (11 routes total). All assertions pass. 9/9 spec tests green.

Targeted vitest:
- New sharedPlatformPage.test.ts covers filterPlatformResources
  (6 tests, all pass) including the status-vocabulary collapse
  (online↔running, degraded↔paused, offline↔stopped) and the
  search-across-id/displayName/parent/tags contract.
- WorkloadsSurface and Storage surface contract tests continue to
  pass.
2026-05-16 00:08:12 +01:00
..