S

Knowledge Pack Files

SideButton Dashboard Knowledge Pack Files

Browse the source files that power the SideButton Dashboard MCP server knowledge pack.

Available free v0.4.0 Browser
$ sidebutton install sidebutton.local
Download ZIP
8.6 KB

Run Logs — QA Test Playbook

Prerequisites

  • SideButton server running on localhost:9876
  • Browser extension connected
  • Navigate to SPA root first (localhost:9876), then use in-app navigation
  • At least one completed workflow run in history (for non-empty state tests)
  • /run-logs has no sidebar nav entry — reach via Skills "View Run Logs" link or programmatic navigation

Phase 1: Run Log List — Page Load & Structure

#TestMethodPass Criteria
1.1Run Logs page loadsNavigate to /run-logs via Skills "View Run Logs" linkh1 "Run Logs" heading visible, no .loading-state spinner
1.2Header elementssnapshot header"Run Logs" heading + .item-count badge + "Clear All" .btn-secondary + .reload-btn visible
1.3KPI stats barsnapshot .kpi-bar.kpi-hero-value (time saved today) + .kpi-time-breakdown (This Week / This Month / All Time) + .kpi-stats (Runs Today + Success Rate) visible
1.4History cardssnapshot .run-listAt least one button.run-card with .run-header (title + StatusBadge) and .run-meta (run_id + duration + timestamp)
1.5StatusBadge colorsscreenshot .run-listSuccess cards show green badge, failed cards show red badge

Phase 2: Run Log List — Navigation & Actions

#TestMethodPass Criteria
2.1Open completed runClick button.run-card in historyNavigates to /run-logs/{id} — Run Log Detail view loads
2.2Reload buttonClick .reload-btnRun logs and running workflows refetched. List content refreshes
2.3Clear All — confirm flowClick .btn-secondary "Clear All"Button area replaced by inline .confirm-text "Clear all logs?" + .btn-danger "Yes, Clear" + .btn-secondary "Cancel"
2.4Clear All — cancelClick "Cancel" in confirm UIConfirm UI dismissed, original "Clear All" button returns. No logs deleted
2.5Clear All — executeClick "Yes, Clear" .btn-dangerAll logs deleted. .empty-state appears with "No Run History" heading

Phase 3: Run Log List — Empty State

#TestMethodPass Criteria
3.1Empty state contentClear all logs or start fresh.empty-state visible with clock SVG + h3 "No Run History" + "Workflow executions will appear here."
3.2KPI bar absentsnapshot in empty state.kpi-bar is NOT present in the DOM
3.3Header still functionalsnapshot header in empty state"Run Logs" heading + .item-count badge (showing 0) + buttons still present

Phase 4: Run Log Detail — Page Load & Structure

#TestMethodPass Criteria
4.1Detail page loadsClick a .run-card from list.run-info container with .title-row (h1 workflow title + StatusBadge) visible
4.2Back buttonsnapshot header.back-btn "Back" visible
4.3Meta gridsnapshot .meta-grid.meta-item cards for: Run ID, Workflow ID, Duration, Events, Triggered By, Timestamp
4.4Events sectionsnapshot .events-containerh2 "Events ({count})" heading + .event-item rows with index, type, message
4.5Event type colorsscreenshot .events-container.event-run (blue), .event-end (green), .event-step (gray), .event-error (red) correctly colored

Phase 5: Run Log Detail — Parameters & Delete

#TestMethodPass Criteria
5.1Parameters shownOpen detail of a run that had params.params-list visible with .param-item cards (.param-name + .param-value)
5.2Parameters absentOpen detail of a run without params.params-list is NOT present in the DOM
5.3Delete — confirm flowClick Delete button in .header-actionsInline confirm: .confirm-text "Delete this log?" + .btn-danger "Yes, Delete" + .btn-secondary "Cancel"
5.4Delete — cancelClick "Cancel"Confirm dismissed, delete button returns. Log not deleted
5.5Delete — executeClick "Yes, Delete"Log deleted, auto-navigates to run logs list
5.6Back navigationClick .back-btn "Back"Navigates to /run-logs list view

Phase 6: Run Log Detail — Terminal States

#TestMethodPass Criteria
6.1Not foundNavigate to /run-logs/nonexistent-id.not-found with text "Run log not found."
6.2Loading stateObserve during fetch.loading with text "Loading run log..." (may be transient)

Phase 7: Execution View — Live Monitoring

#TestMethodPass Criteria
7.1Execution startsTrigger a workflow run, observe ExecutionView.status.running badge (blue) with .pulse dot + .btn-stop visible
7.2Back button disabledsnapshot during execution.back-btn has disabled attribute while running
7.3Waiting stateObserve before first event arrives.empty-state with .spinner + "Waiting for execution events..."
7.4Log entries streamObserve after events arrive.log-entry rows appearing with .log-time, .log-type, .log-message
7.5Auto-scrollWatch .log-container during streamingContainer scrolls to bottom as new entries arrive
7.6Log type colorsscreenshot .log-container.log-run (blue), .log-success (green), .log-error (red), .log-step (gray), .log-result (purple)

Phase 8: Execution View — Stop & Complete

#TestMethodPass Criteria
8.1Stop executionClick .btn-stop during runningstopWorkflow(runId) called; transitions to completed state
8.2Completed stateWait for workflow to finish naturally.status.completed badge (green) + .btn-primary "Done" visible
8.3Back button enabledsnapshot after completion.back-btn no longer has disabled attribute
8.4Done buttonClick .btn-primary "Done"Navigates back (to previous view)
8.5Error bannerTrigger an error during execution.error-banner visible with error message text

Phase 9: Running Workflows Section (Run Log List)

#TestMethodPass Criteria
9.1Running section visibleStart a workflow, navigate to /run-logsh2 with .pulse dot + "Currently Running ({count})" heading visible
9.2Running cardsnapshot .running-listbutton.running-card with .running-header (title + "running" StatusBadge) + .running-meta (run_id + started time)
9.3Click running cardClick button.running-cardOpens ExecutionView with real-time log stream
9.4History heading appearssnapshot with both running + historyh2 "History" heading rendered (only when running section also visible)
9.5Auto-refresh on completeWait for running workflow to finishHistory list refreshes after ~500ms delay; completed run appears

Automation Tips

  • No sidebar nav entry: /run-logs is NOT in the left sidebar. Navigate via Skills page "View Run Logs" link, or use navigate(url) directly after loading the SPA root
  • SPA-only navigation: Always load root / first, then navigate. Direct URL /run-logs returns Fastify 404 JSON if SPA shell isn't loaded
  • Inline confirms, NOT window.confirm(): Both "Clear All" and "Delete" use in-page inline confirm UI (.confirm-text + .btn-danger + .btn-secondary). Must click through two-step sequence — no browser dialog to intercept
  • ExecutionView has no URL: Cannot be deep-linked. Must be reached by clicking a .running-card or triggering a workflow execution. Navigating to any URL will NOT open it
  • KPI bar is data-dependent: .kpi-bar is absent from the DOM when runs.length === 0. Do not assert its presence in empty-state tests
  • History heading is conditional: h2 "History" only renders when there are also running workflows. Without running workflows, the list renders with no heading
  • id vs run_id: Detail view URLs use RunLogMetadata.id (database record ID). Running workflows use run_id (execution handle). Different fields
  • WebSocket refresh delay: When a running workflow completes, RunLogView waits 500ms before refetching. The history list may briefly lag
  • Toast notifications: Success/error messages auto-hide after ~3s. Screenshot immediately after actions
  • Event depth indentation: .event-item and .log-entry rows use depth field for left padding. Verify nested events are visually indented