test(canvas): add WorkspaceNode component test coverage (51 cases) #480

Merged
core-lead merged 1 commits from test/canvas-workspacenode-coverage into main 2026-05-11 13:14:20 +00:00

1 Commits

Author SHA1 Message Date
9f4b1894ca test(canvas): add WorkspaceNode component test coverage (51 cases)
Some checks failed
audit-force-merge / audit (pull_request) Successful in 13s
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 19s
cascade-list-drift-gate / check (pull_request) Successful in 21s
E2E API Smoke Test / detect-changes (pull_request) Successful in 42s
CI / Detect changes (pull_request) Successful in 44s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 45s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 14s
Harness Replays / detect-changes (pull_request) Failing after 17s
Harness Replays / Harness Replays (pull_request) Has been skipped
Handlers Postgres Integration / detect-changes (pull_request) Successful in 40s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 18s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 38s
gate-check-v3 / gate-check (pull_request) Successful in 23s
qa-review / approved (pull_request) Failing after 14s
security-review / approved (pull_request) Failing after 15s
sop-tier-check / tier-check (pull_request) Successful in 13s
Ops Scripts Tests / Ops scripts (unittest) (pull_request) Successful in 47s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 17s
E2E Staging SaaS (full lifecycle) / E2E Staging SaaS (pull_request) Failing after 5m1s
E2E Staging External Runtime / E2E Staging External Runtime (pull_request) Successful in 5m21s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Failing after 4m34s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 2m42s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 4m43s
CI / Python Lint & Test (pull_request) Failing after 7m30s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 8m11s
CI / Platform (Go) (pull_request) Failing after 9m22s
CI / Canvas (Next.js) (pull_request) Failing after 9m43s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
Canvas owned WorkspaceNode component lacked any test coverage.
Adds 51 test cases covering:
- Renders name, status dot, tier badge, role, skills, runtime badge
- Status states: online/offline/failed/degraded/provisioning
- Misconfigured state (online + not_configured)
- Click → select, Shift+click → batch select
- Keyboard Enter/Space → select/deselect
- Context menu on right-click
- Double-click expand/zoom behavior
- Needs restart button and current task banner
- Descendant count badge and active tasks counter
- Selection aria attributes and aria-label
- Handle anchors accessibility (extract/nest)

Also:
- WorkspaceNode.tsx: add data-testid for test stability
- ApprovalBanner.test.tsx: adopt fake-timer consistency fix (useFakeTimers
  in afterEach, mockReset per-spy) — prevents cross-file timer-state
  pollution that caused intermittent ApprovalBanner test failures

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-11 13:12:25 +00:00