Pulse/tests/integration/tests
rcourtman b0c4faa4a0 frontend(platforms): drop platform sub-tabs whose canonical projection is missing
Audit pass against the live mock backend (PULSE_MOCK_MODE=true) revealed
three platform sub-tabs that could never populate from canonical
resources today, even with a mature fixture environment:

- Docker > Swarm services: no `docker-service` resource is emitted by
  the unified resource adapter at the /api/resources boundary.
- Kubernetes > Services: no `k8s-service` resource type is defined in
  internal/unifiedresources; only k8s-cluster, k8s-node, pod, and
  k8s-deployment are projected.
- TrueNAS > Hosts: TrueNAS connections produce storage, datasets,
  physical disks, and app-containers but no top-level `agent` row
  tagged with the `truenas` platform.

Per the platform-pages goal ("if a platform lacks enough canonical data
model support to make a useful page even after fixture work, do not
invent speculative UI — report the data-model gap and skip or gate
that surface deliberately"), the three sub-tabs are removed from the
page navigation and the resource queries are tightened to drop the
unused types. TrueNAS now defaults to /truenas/storage as the first
canonical operator entry point.

Kubernetes Nodes now also includes agent rows whose `sources` array
reports `kubernetes`, because the backend registry merges Pulse-Agent-
linked Kubernetes nodes onto the linked agent row. The merged agents
are the canonical projection of K8s nodes when an agent is installed
on them; treating them as Nodes makes the tab populate against mock
mode and live agent fleets alike.

Browser verification (Playwright, chromium, against live mock-mode
Pulse dev runtime):
- 8 tests, all pass. Every declared platform sub-tab now asserts at
  least one canonical row populates under mock mode:
  - docker: /docker/overview (2 hosts), /docker/containers
  - kubernetes: /kubernetes/overview (1 cluster),
    /kubernetes/nodes (3 merged agents), /kubernetes/pods (10),
    /kubernetes/deployments (4)
  - truenas: /truenas/storage (9), /truenas/apps (5)
  - vmware: /vmware/overview (4 ESXi hosts), /vmware/vms (8),
    /vmware/storage (datastores)

Targeted tests:
- dockerPageModel, kubernetesPageModel, truenasPageModel suites
  updated and passing.
- resourceLinks.test.ts asserts the new TrueNAS default sub-tab.

Contracts updated:
- unified-resources.md Extension Points: platform default sub-tab must
  land on a canonical surface that actually populates.
- storage-recovery.md Shared Boundaries: same; calls out TrueNAS
  defaulting to /truenas/storage today.

Remaining canonical data-model gaps (intentionally not surfaced as
empty platform sub-tabs in the UI):
- internal/unifiedresources does not emit `docker-service` resources
  even though mock.generateDockerServicesAndTasks() generates them in
  the StateSnapshot; revisit when adding a docker-service projection.
- internal/unifiedresources does not define ResourceTypeK8sService;
  revisit when k8s-service rows are added to the canonical model.
- internal/unifiedresources does not project a top-level TrueNAS
  system as an `agent` row; revisit when the TrueNAS adapter promotes
  the connection target into a canonical infrastructure row.
2026-05-15 23:49:23 +01:00
..
06-theme-visual.spec.ts-snapshots feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
journeys Make self-hosted SSO Community-tier 2026-05-03 12:48:01 +01:00
00-diagnostic.spec.ts feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
01-core-e2e.spec.ts Retire dashboard landing surface 2026-04-29 16:25:09 +01:00
02-navigation-perf.spec.ts feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
03-multi-tenant.spec.ts Require target-organization approval for org shares 2026-04-22 09:16:40 +01:00
04-mobile.spec.ts Remove navigation guide modal and reopen control 2026-05-06 09:49:15 +01:00
05-settings-mobile-audit.spec.ts feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
06-theme-visual.spec.ts Remove navigation guide modal and reopen control 2026-05-06 09:49:15 +01:00
07-retired-trial-acquisition.spec.ts Rename retired trial acquisition proof assets 2026-04-28 18:38:10 +01:00
08-cloud-hosting.spec.ts Add hosted staging smoke entrypoint 2026-04-15 12:17:57 +01:00
09-cloud-billing-lifecycle.spec.ts Auto-select hosted staging tenant 2026-04-15 12:23:57 +01:00
10-v6-license-activation.spec.ts Align self-hosted plan docs and tests 2026-04-29 09:21:10 +01:00
11-first-session.spec.ts Stabilize first-session auth reset proof 2026-05-13 16:31:07 +01:00
12-v5-commercial-migration.spec.ts Retire self-hosted trial posture prompts 2026-04-28 17:39:09 +01:00
13-api-token-scope.spec.ts feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
14-commercial-cancellation-reactivation.spec.ts Unify Playwright route base selection 2026-04-10 17:33:18 +01:00
15-settings-shell-consistency.spec.ts Require accepted org invitations and stable runtime capabilities 2026-04-22 03:06:22 +01:00
16-dev-runtime-recovery.spec.ts Align first-session onboarding handoff 2026-05-13 16:18:50 +01:00
17-recovery-layout.spec.ts Harden recovery activity timeline ranges 2026-05-13 18:32:25 +01:00
18-patrol-runtime-state.spec.ts Surface saved Patrol readiness issues 2026-05-08 02:37:56 +01:00
19-telemetry-disclosure.spec.ts Remove navigation guide modal and reopen control 2026-05-06 09:49:15 +01:00
20-local-doc-links.spec.ts Retire dashboard landing surface 2026-04-29 16:25:09 +01:00
21-truenas-settings-platform-connections.spec.ts Remove self-hosted monitoring upsell copy 2026-04-28 09:33:26 +01:00
22-truenas-workloads-platform-filter.spec.ts fix(workloads): keep canonical app-container identity 2026-03-30 10:34:37 +01:00
22-vmware-settings-platform-connections.spec.ts Remove self-hosted monitoring upsell copy 2026-04-28 09:33:26 +01:00
23-truenas-infrastructure-storage-links.spec.ts refactor(truenas): canonicalize frontend system resources 2026-03-30 12:59:34 +01:00
24-truenas-storage-source-filter.spec.ts feat(storage): restore canonical truenas source handoff 2026-03-30 00:21:02 +01:00
25-truenas-recovery-route-filter.spec.ts refactor(truenas): canonicalize frontend system resources 2026-03-30 12:59:34 +01:00
26-truenas-alert-thresholds.spec.ts refactor(truenas): canonicalize frontend system resources 2026-03-30 12:59:34 +01:00
27-truenas-storage-disk-history.spec.ts fix(truenas): project smart disk health into canonical risk 2026-03-30 04:45:22 +01:00
28-truenas-alert-resource-links.spec.ts refactor(truenas): canonicalize frontend system resources 2026-03-30 12:59:34 +01:00
29-truenas-patrol-finding-links.spec.ts Retire self-hosted AI quickstart surfaces 2026-04-28 15:49:18 +01:00
30-setup-platform-connections-handoff.spec.ts Align first-session onboarding handoff 2026-05-13 16:18:50 +01:00
31-truenas-ai-chat-mentions.spec.ts fix(ai): use canonical app-container mentions 2026-03-30 10:18:07 +01:00
32-truenas-workloads-resource-deeplink.spec.ts fix(workloads): gate discovery on canonical targets 2026-03-30 12:16:10 +01:00
33-truenas-infrastructure-route-filter.spec.ts fix(infrastructure): preserve truenas source handoff 2026-03-30 11:32:06 +01:00
34-truenas-patrol-history-breakdown.spec.ts Retire self-hosted AI quickstart surfaces 2026-04-28 15:49:18 +01:00
35-vmware-infrastructure-source-filter.spec.ts Implement VMware vCenter resource projection slice 2026-03-30 18:55:06 +01:00
36-vmware-alert-history-resource-incidents.spec.ts Implement VMware alert history slice 2026-03-30 19:45:29 +01:00
37-vmware-resource-history-drawer.spec.ts Improve action audit refusal presentation 2026-05-13 23:03:12 +01:00
38-vmware-ai-chat-mentions.spec.ts Fix VMware assistant read-only guidance 2026-03-31 00:00:32 +01:00
39-vmware-resource-detail-drawer.spec.ts Surface VMware drawer context on shared resources 2026-03-30 22:58:19 +01:00
40-vmware-storage-source-filter.spec.ts Classify VMware datastores on storage route 2026-03-30 23:19:56 +01:00
41-vmware-phase1-exclusion-integrity.spec.ts Lock VMware phase-1 exclusion integrity 2026-03-30 23:42:32 +01:00
42-vmware-ai-chat-read-recovery.spec.ts Add VMware AI read recovery browser proof 2026-03-31 09:34:04 +01:00
43-platform-mock-runtime.spec.ts Own mock runtime fixtures under monitoring 2026-04-16 16:00:23 +01:00
44-workloads-chart-spacing.spec.ts Bucket workload charts by time window 2026-03-31 21:49:44 +01:00
45-workloads-memory-tail.spec.ts Remove navigation guide modal and reopen control 2026-05-06 09:49:15 +01:00
46-storage-summary-continuity.spec.ts Remove navigation guide modal and reopen control 2026-05-06 09:49:15 +01:00
47-inline-selection-scroll-stability.spec.ts fix(frontend): restore anchored inline drawer reveal 2026-04-02 22:47:08 +01:00
48-summary-hover-selection.spec.ts Fix summary chart tooltip tracking 2026-04-15 21:11:52 +01:00
49-demo-scenario-curation.spec.ts Polish canonical mock demo estate 2026-04-01 13:15:32 +01:00
50-storage-physical-disk-io-history.spec.ts Route physical disk drawer IO through canonical history 2026-04-01 23:33:43 +01:00
51-quickstart-cross-surface.spec.ts Retire self-hosted AI quickstart surfaces 2026-04-28 15:49:18 +01:00
52-ai-settings-provider-setup.spec.ts Return safe provider preflight diagnostics 2026-05-07 20:45:18 +01:00
53-demo-mode-commercial-boundary.spec.ts Remove navigation guide modal and reopen control 2026-05-06 09:49:15 +01:00
54-monitored-system-billing-focus.spec.ts Remove navigation guide modal and reopen control 2026-05-06 09:49:15 +01:00
55-self-hosted-upgrade-return.spec.ts Add self-hosted commercial continuity proof 2026-05-13 16:44:26 +01:00
56-pulse-account-upgrade-bootstrap.spec.ts Present Relay as annual-first support tier 2026-04-29 12:49:20 +01:00
57-release-candidate-shell.spec.ts Remove navigation guide modal and reopen control 2026-05-06 09:49:15 +01:00
58-self-hosted-trial-rate-limit-ui.spec.ts Align self-hosted plan docs and tests 2026-04-29 09:21:10 +01:00
59-self-hosted-plans-entitlement-summary.spec.ts Add self-hosted commercial continuity proof 2026-05-13 16:44:26 +01:00
59-workloads-column-layout.spec.ts Remove navigation guide modal and reopen control 2026-05-06 09:49:15 +01:00
60-page-header-consistency.spec.ts Retire dashboard landing surface 2026-04-29 16:25:09 +01:00
61-diagnostics-commercial-funnel.spec.ts Remove navigation guide modal and reopen control 2026-05-06 09:49:15 +01:00
61-infrastructure-column-layout.spec.ts Remove navigation guide modal and reopen control 2026-05-06 09:49:15 +01:00
62-runtime-home-onboarding-contract.spec.ts Align first-session onboarding handoff 2026-05-13 16:18:50 +01:00
62-storage-growth-column.spec.ts Remove navigation guide modal and reopen control 2026-05-06 09:49:15 +01:00
63-pbs-active-tasks.spec.ts Surface PBS job health evidence in drawer 2026-05-13 21:41:16 +01:00
64-workloads-proxmox-refresh-stability.spec.ts Remove navigation guide modal and reopen control 2026-05-06 09:49:15 +01:00
65-offline-proxmox-node-visibility.spec.ts Remove navigation guide modal and reopen control 2026-05-06 09:49:15 +01:00
66-ceph-alert-thresholds.spec.ts Fix Proxmox guest memory fallbacks 2026-05-05 14:59:29 +01:00
66-organization-sharing-approval-ui.spec.ts Remove navigation guide modal and reopen control 2026-05-06 09:49:15 +01:00
67-tls-verification-warning-banners.spec.ts Add persistent TLS bypass warning banners 2026-04-22 10:30:35 +01:00
68-infrastructure-onboarding.spec.ts Align first-session onboarding handoff 2026-05-13 16:18:50 +01:00
68-platform-pages-shell.spec.ts frontend(platforms): drop platform sub-tabs whose canonical projection is missing 2026-05-15 23:49:23 +01:00
69-diagnostics-onboarding.spec.ts Harden diagnostics onboarding export proof 2026-04-22 16:16:26 +01:00
70-self-hosted-manual-activation-success.spec.ts Add self-hosted commercial continuity proof 2026-05-13 16:44:26 +01:00
72-docker-workloads-host-filter.spec.ts Fix Docker workload host scoping 2026-04-28 21:28:11 +01:00
73-patrol-assistant-operator-briefing.spec.ts Preserve Patrol handoff session identity 2026-05-07 19:46:49 +01:00
74-infrastructure-workloads-resource-coherence.spec.ts Harden Workloads refresh retention 2026-05-14 15:18:34 +01:00
75-settings-infrastructure-fleet-status-coherence.spec.ts Fix default agent rollout status noise 2026-05-14 14:37:24 +01:00
helpers.ts Stabilize first-session auth reset proof 2026-05-13 16:31:07 +01:00
runtime-defaults.ts Unify Playwright route base selection 2026-04-10 17:33:18 +01:00
stripe-sandbox.ts Keep self-hosted paid surfaces opt-in 2026-04-25 13:45:31 +01:00
stripe-webhooks.ts feat: Pulse v6 release 2026-03-18 16:06:30 +00:00