ui tests #26

Open
opened 2026-03-25 06:09:32 +00:00 by despiegk · 3 comments
Owner

We want to make an easy way how to... test through the UI if the hero pro is working properly. So give me 20 tests. Not to you, otherwise it will take forever, where we test the various things, is the logging, working with the routing. is the DTI working, can recreate an action, can recreate a run. Can we create a service if you click on start, the service and running, and so on? So makeup, then, dust cases for browse from CP. and then make the master test, which basically says, to go into the directory of the test cases. Execute them all in parallel, using the browse from CP, and in each test case, at the back, put a recovery, where you say, in case it does not work, then do another subaction, where we try to recover based on what we found, and skills we can define, which, as a human will, define protest case. Put that in this report under slash UI test cases. And let's do a direct subdirectory, it's actually a good idea. Subdirectory per test case, because then we can even put like images in.

testcases/$name/name.md can have e.g. images next to it to support it

We want to make an easy way how to... test through the UI if the hero pro is working properly. So give me 20 tests. Not to you, otherwise it will take forever, where we test the various things, is the logging, working with the routing. is the DTI working, can recreate an action, can recreate a run. Can we create a service if you click on start, the service and running, and so on? So makeup, then, dust cases for browse from CP. and then make the master test, which basically says, to go into the directory of the test cases. Execute them all in parallel, using the browse from CP, and in each test case, at the back, put a recovery, where you say, in case it does not work, then do another subaction, where we try to recover based on what we found, and skills we can define, which, as a human will, define protest case. Put that in this report under slash UI test cases. And let's do a direct subdirectory, it's actually a good idea. Subdirectory per test case, because then we can even put like images in. testcases/$name/name.md can have e.g. images next to it to support it
Author
Owner

Implementation Spec for Issue #26 — UI Tests

Objective

Create ~22 browser-automation UI test cases for the hero_proc dashboard, organized as testcases/$name/$name.md markdown files, plus a master test runner document.

Test Cases (22 total)

# Test Name What It Tests
01 dashboard_load Page loads, navbar, status dot, tabs render
02 connection_status Status dot popover shows UI + backend health
03 tab_navigation All 12 tabs switch correctly, URL hash updates
04 theme_toggle Dark/light theme switching
05 demo_data Demo button populates actions/services/jobs/secrets/schedules
06 actions_crud Create, view, edit, delete an action
07 actions_search Search/filter actions list
08 services_crud Create, view, edit, delete a service
09 service_lifecycle Start, stop, restart a service
10 service_bulk_ops Multi-select and bulk bar operations
11 jobs_create Create job via UI form
12 jobs_lifecycle Job phase transitions, cancel, retry
13 jobs_filters Filter jobs by phase and service
14 runs_crud Create, view, delete a run
15 secrets_crud Create, view, edit, delete a secret
16 schedules_view Schedules display with cron expressions
17 logs_query Log querying with time range, level, source filters
18 stats_display System stats cards and charts
19 admin_operations Admin tab buttons (Clean Jobs, etc.)
20 heroscript_editor CodeMirror editor, file tree, save, run
21 docs_tab Documentation sidebar and content rendering
22 terminal_tab Terminal tab with job dropdown

Structure

testcases/
├── run_all.md                              # Master test runner
├── 01_dashboard_load/01_dashboard_load.md
├── 02_connection_status/02_connection_status.md
├── ...
└── 22_terminal_tab/22_terminal_tab.md

Each Test Case Contains

  • Purpose — what it verifies
  • Prerequisites — required state
  • Steps — numbered steps with specific hero_browser MCP tool calls
  • Assertions — pass/fail criteria
  • Recovery — what to do on failure (retry up to 2x, screenshot on final failure)
  • Cleanup — restore state

Master Runner (run_all.md)

  • Prerequisites: dashboard running on port 9999, hero_browser MCP available
  • Parallel execution: each test gets its own browser page
  • Retry: up to 2 retries per test with 2s delay
  • Screenshots on failure for debugging
  • Summary table with pass/fail counts

Acceptance Criteria

  • 22 test case files + 1 master runner = 23 files
  • Covers all 12 dashboard tabs
  • CRUD for actions, services, runs, jobs, secrets
  • Service lifecycle (start/stop/restart)
  • Logs, stats, HeroScript editor, docs, terminal
  • All selectors match actual DOM IDs from templates
  • Unique prefixed names for test data (e.g., test-action-06)
## Implementation Spec for Issue #26 — UI Tests ### Objective Create ~22 browser-automation UI test cases for the hero_proc dashboard, organized as `testcases/$name/$name.md` markdown files, plus a master test runner document. ### Test Cases (22 total) | # | Test Name | What It Tests | |---|-----------|---------------| | 01 | dashboard_load | Page loads, navbar, status dot, tabs render | | 02 | connection_status | Status dot popover shows UI + backend health | | 03 | tab_navigation | All 12 tabs switch correctly, URL hash updates | | 04 | theme_toggle | Dark/light theme switching | | 05 | demo_data | Demo button populates actions/services/jobs/secrets/schedules | | 06 | actions_crud | Create, view, edit, delete an action | | 07 | actions_search | Search/filter actions list | | 08 | services_crud | Create, view, edit, delete a service | | 09 | service_lifecycle | Start, stop, restart a service | | 10 | service_bulk_ops | Multi-select and bulk bar operations | | 11 | jobs_create | Create job via UI form | | 12 | jobs_lifecycle | Job phase transitions, cancel, retry | | 13 | jobs_filters | Filter jobs by phase and service | | 14 | runs_crud | Create, view, delete a run | | 15 | secrets_crud | Create, view, edit, delete a secret | | 16 | schedules_view | Schedules display with cron expressions | | 17 | logs_query | Log querying with time range, level, source filters | | 18 | stats_display | System stats cards and charts | | 19 | admin_operations | Admin tab buttons (Clean Jobs, etc.) | | 20 | heroscript_editor | CodeMirror editor, file tree, save, run | | 21 | docs_tab | Documentation sidebar and content rendering | | 22 | terminal_tab | Terminal tab with job dropdown | ### Structure ``` testcases/ ├── run_all.md # Master test runner ├── 01_dashboard_load/01_dashboard_load.md ├── 02_connection_status/02_connection_status.md ├── ... └── 22_terminal_tab/22_terminal_tab.md ``` ### Each Test Case Contains - **Purpose** — what it verifies - **Prerequisites** — required state - **Steps** — numbered steps with specific `hero_browser` MCP tool calls - **Assertions** — pass/fail criteria - **Recovery** — what to do on failure (retry up to 2x, screenshot on final failure) - **Cleanup** — restore state ### Master Runner (`run_all.md`) - Prerequisites: dashboard running on port 9999, `hero_browser` MCP available - Parallel execution: each test gets its own browser page - Retry: up to 2 retries per test with 2s delay - Screenshots on failure for debugging - Summary table with pass/fail counts ### Acceptance Criteria - [x] 22 test case files + 1 master runner = 23 files - [x] Covers all 12 dashboard tabs - [x] CRUD for actions, services, runs, jobs, secrets - [x] Service lifecycle (start/stop/restart) - [x] Logs, stats, HeroScript editor, docs, terminal - [x] All selectors match actual DOM IDs from templates - [x] Unique prefixed names for test data (e.g., test-action-06)
Author
Owner

Implementation Complete

Files Created (23 total)

Master Runner:

  • testcases/run_all.md — Parallel execution strategy, retry logic, hero_browser tool reference

Test Cases (22):

# Directory Test
01 01_dashboard_load/ Page load, navbar, tabs render
02 02_connection_status/ Status dot popover health check
03 03_tab_navigation/ All 12 tabs switch correctly
04 04_theme_toggle/ Dark/light theme switching
05 05_demo_data/ Demo button populates all data types
06 06_actions_crud/ Action create/read/update/delete
07 07_actions_search/ Action search/filter
08 08_services_crud/ Service create/read/update/delete
09 09_service_lifecycle/ Service start/stop/restart
10 10_service_bulk_ops/ Multi-select bulk operations
11 11_jobs_create/ Job creation via UI
12 12_jobs_lifecycle/ Job phase transitions
13 13_jobs_filters/ Phase and service filters
14 14_runs_crud/ Run create/view/delete
15 15_secrets_crud/ Secret CRUD with masking
16 16_schedules_view/ Schedule display with cron
17 17_logs_query/ Log querying and filtering
18 18_stats_display/ System stats and charts
19 19_admin_operations/ Admin tab safe operations
20 20_heroscript_editor/ CodeMirror editor save/run
21 21_docs_tab/ Documentation rendering
22 22_terminal_tab/ Terminal tab with job select

Coverage

  • All 12 dashboard tabs covered
  • CRUD for actions, services, runs, jobs, secrets
  • Service lifecycle (start/stop/restart)
  • Logs, stats, HeroScript editor, docs, terminal
  • All selectors verified against actual DOM IDs from templates
  • Each test includes: Purpose, Prerequisites, Steps, Assertions, Recovery, Cleanup
## Implementation Complete ### Files Created (23 total) **Master Runner:** - `testcases/run_all.md` — Parallel execution strategy, retry logic, hero_browser tool reference **Test Cases (22):** | # | Directory | Test | |---|-----------|------| | 01 | `01_dashboard_load/` | Page load, navbar, tabs render | | 02 | `02_connection_status/` | Status dot popover health check | | 03 | `03_tab_navigation/` | All 12 tabs switch correctly | | 04 | `04_theme_toggle/` | Dark/light theme switching | | 05 | `05_demo_data/` | Demo button populates all data types | | 06 | `06_actions_crud/` | Action create/read/update/delete | | 07 | `07_actions_search/` | Action search/filter | | 08 | `08_services_crud/` | Service create/read/update/delete | | 09 | `09_service_lifecycle/` | Service start/stop/restart | | 10 | `10_service_bulk_ops/` | Multi-select bulk operations | | 11 | `11_jobs_create/` | Job creation via UI | | 12 | `12_jobs_lifecycle/` | Job phase transitions | | 13 | `13_jobs_filters/` | Phase and service filters | | 14 | `14_runs_crud/` | Run create/view/delete | | 15 | `15_secrets_crud/` | Secret CRUD with masking | | 16 | `16_schedules_view/` | Schedule display with cron | | 17 | `17_logs_query/` | Log querying and filtering | | 18 | `18_stats_display/` | System stats and charts | | 19 | `19_admin_operations/` | Admin tab safe operations | | 20 | `20_heroscript_editor/` | CodeMirror editor save/run | | 21 | `21_docs_tab/` | Documentation rendering | | 22 | `22_terminal_tab/` | Terminal tab with job select | ### Coverage - All 12 dashboard tabs covered - CRUD for actions, services, runs, jobs, secrets - Service lifecycle (start/stop/restart) - Logs, stats, HeroScript editor, docs, terminal - All selectors verified against actual DOM IDs from templates - Each test includes: Purpose, Prerequisites, Steps, Assertions, Recovery, Cleanup
Author
Owner

Implementation committed: 7897767

Browse: 7897767

Implementation committed: `7897767` Browse: https://forge.ourworld.tf/lhumina_code/hero_proc/commit/7897767
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/hero_proc#26
No description provided.