Manual Test Plan — Hecate Tunnel & Pathway Manager
Feature: Hecate Tunnel & Pathway Manager
PR: #983
Branch: feature/hecate
Date: 2026-04-28
Scope
Functional validation of the tunnel manager UI and Orthrus agent provisioning flow. Automated E2E tests cover the happy paths. This plan targets edge cases, real provider integration, and accessibility.
Prerequisites
- Charon running with a valid encryption key configured
- At minimum one remote server accessible over the network
- (Optional) Active Cloudflare account, Tailscale network, ZeroTier network, or NetBird workspace for provider-specific tests
Test Cases
TC-01: Add Direct Connection Server
- Navigate to Remote Servers
- Click Add Server
- Select Direct as Connection Type
- Enter a valid hostname and port
- Save
Expected: Server appears in the list with a "Direct" badge in the Connection column.
TC-02: Add Orthrus Agent Server (Provisioning)
- Navigate to Remote Servers → Add Server
- Select Orthrus Agent as Connection Type
- Click Provision New Agent
Expected:
- Install wizard opens
- AUTH_KEY is displayed in a read-only input
- Warning "This key will only be shown once" is visible
- All five tabs are present (Docker Compose, Systemd, Tarball, Homebrew, Kubernetes)
- Each tab shows a snippet with
ch_orthrus_ prefixed key substituted
- Copy button for each snippet works and shows "Copied!" for 3 seconds
- Clicking Done closes the wizard
TC-03: AUTH_KEY Not Re-Shown After Wizard Close
- Complete TC-02
- Navigate away and return to Remote Servers
- Click on the provisioned agent
Expected: AUTH_KEY is not visible anywhere in the UI. There is no re-display of the one-time key.
TC-04: Orthrus Agent Connection Status Badge
- With a provisioned agent server in the list
- Observe the Connection column when the agent is offline
Expected: Badge shows a stopped/disconnected state (not a "Direct" badge).
- Start the Orthrus agent binary on the target server
- Return to Remote Servers after a few seconds
Expected: Badge updates to show connected state.
TC-05: Cloudflare Tunnel Creation
- Add a new server with Cloudflare Tunnel connection type
- Enter a Cloudflare API token with Tunnel permissions
- Complete the wizard and save
Expected: Tunnel appears in the provider with a pending state, eventually moving to active.
TC-06: Start/Stop Tunnel
- Select an existing tunnel server
- Use the Start/Stop controls
Expected: Badge state updates in the list after the operation completes. No page reload required.
TC-07: Delete Tunnel
- Stop an active tunnel
- Delete it
Expected: Tunnel and server entry removed from the list. No orphaned resources visible.
TC-08: Tunnel Log Viewer
- Select an Orthrus agent server
- Click View Tunnel Logs
Expected:
- Log viewer dialog opens
role="log" and aria-live="polite" present (screen reader accessible)
- Pause button shows
aria-pressed="false" initially
- Clicking Pause changes to
aria-pressed="true" and logs stop scrolling
- Clear button clears the log display
- Closing the dialog returns focus to the trigger button
TC-09: Keyboard Navigation — Connection Type Selector
- Open Add Server form
- Tab to the Connection Type selector
- Use arrow keys to change selection
Expected: All connection types reachable by keyboard. No mouse required.
TC-10: Orthrus Install Wizard — Keyboard Navigation
- Open the Orthrus install wizard
- Tab to the tab list
- Use ArrowRight to navigate between tabs
Expected: Each tab activates and shows the correct snippet without mouse.
TC-11: Escape Key Closes Dialogs
- Open the Orthrus install wizard
- Press Escape
Expected: Dialog closes and focus returns to the trigger element.
TC-12: Encryption Key Not Set — Feature Disabled
- Start Charon without an encryption key configured
- Navigate to Remote Servers
Expected: The Hecate feature section is not available or shows an appropriate "encryption required" message. No data exposed.
Regression Checks
Out of Scope
- Tailscale, ZeroTier, NetBird provider flows (require live accounts)
- WebSocket log streaming under high-volume conditions
- Multi-instance Charon deployments
Auto-created from hecate-manual-test-plan.md
Manual Test Plan — Hecate Tunnel & Pathway Manager
Feature: Hecate Tunnel & Pathway Manager
PR: #983
Branch: feature/hecate
Date: 2026-04-28
Scope
Functional validation of the tunnel manager UI and Orthrus agent provisioning flow. Automated E2E tests cover the happy paths. This plan targets edge cases, real provider integration, and accessibility.
Prerequisites
Test Cases
TC-01: Add Direct Connection Server
Expected: Server appears in the list with a "Direct" badge in the Connection column.
TC-02: Add Orthrus Agent Server (Provisioning)
Expected:
ch_orthrus_prefixed key substitutedTC-03: AUTH_KEY Not Re-Shown After Wizard Close
Expected: AUTH_KEY is not visible anywhere in the UI. There is no re-display of the one-time key.
TC-04: Orthrus Agent Connection Status Badge
Expected: Badge shows a stopped/disconnected state (not a "Direct" badge).
Expected: Badge updates to show connected state.
TC-05: Cloudflare Tunnel Creation
Expected: Tunnel appears in the provider with a pending state, eventually moving to active.
TC-06: Start/Stop Tunnel
Expected: Badge state updates in the list after the operation completes. No page reload required.
TC-07: Delete Tunnel
Expected: Tunnel and server entry removed from the list. No orphaned resources visible.
TC-08: Tunnel Log Viewer
Expected:
role="log"andaria-live="polite"present (screen reader accessible)aria-pressed="false"initiallyaria-pressed="true"and logs stop scrollingTC-09: Keyboard Navigation — Connection Type Selector
Expected: All connection types reachable by keyboard. No mouse required.
TC-10: Orthrus Install Wizard — Keyboard Navigation
Expected: Each tab activates and shows the correct snippet without mouse.
TC-11: Escape Key Closes Dialogs
Expected: Dialog closes and focus returns to the trigger element.
TC-12: Encryption Key Not Set — Feature Disabled
Expected: The Hecate feature section is not available or shows an appropriate "encryption required" message. No data exposed.
Regression Checks
Out of Scope
Auto-created from hecate-manual-test-plan.md