Skip to content

e2e: Add workspace specs, part 2 of 2 - #30

Open
SCcagg5 wants to merge 5 commits into
stack/29-e2from
stack/30-e3
Open

SCcagg5 wants to merge 5 commits into
stack/29-e2from
stack/30-e3

Conversation

@SCcagg5

@SCcagg5 SCcagg5 commented Oct 28, 2026 •

Copy link
Copy Markdown
Owner

Part of a stack of 31 pull requests that depend on each other. They must be reviewed and merged in order: each PR builds on the previous one and its diff only contains its own changes.

All PRs of the stack
# PR
1 specs: Add spec 083 and the samples store
2 ir: Add run state fields for ephemeral runs and reused outputs
3 runtime: Bound continuous steps and carry outputs of selected steps
4 api: Add step samples, events, availability and selected-step runs
5 test(ui): add YAML fixtures for the document model tests
6 ui(lib): add shared UI kit, status helpers and right-panel shell
7 ui(canvas): add canvas engine core, toolbars and editor helpers
8 ui(i18n): add workspace message catalogs, first batch
9 ui(canvas): add canvas Flow view, step run panel and workflow panel
10 ui(editor): add YAML document model, canvas model and run source logic
11 ui(editor): Add edit session, YAML format and quick fixes, run actions, tab strip
12 ui(editor): Add canvas graph model, Add step panel, issues popover, run bar
13 ui(canvas): Add layered layout, dependency edges, status styles, reference picker
14 ui(canvas): Add export, flow builder, upstream data panel, output capture
15 ui(canvas): Add node cards, launchers, inspector sections, client issues
16 ui(editor): Add visual editor, step inspector and YAML file panel
17 ui(lists): Open runs on the workflow page; add tab and schedule helpers
18 ui(workspace): Add workspace URL state, legacy redirects and run list links
19 ui(workspace): Add workspace data layer, run facts and Workflow panel
20 ui(workspace): Add run start controls, visible runs and reuse source
21 ui(workspace): Add data provider, bar identity, continuous panel and step list
22 ui(logs): Add run actions cluster, cached logs and log popout page
23 ui(workspace): Add Activity dock, step run view and workflow page
24 test(workspace): Add integration tests for the workspace shell and step view
25 ui(pages): Retire classic run pages and open runs on the workflow page
26 test(editor): Add integration tests for the editor, inspector and run overlay
27 test(ui): Add repository-wide guard tests and ESLint boundary rules
28 e2e: Add workspace helpers and fixtures, update existing specs
29 e2e: Add workspace specs, part 1 of 2
30 e2e: Add workspace specs, part 2 of 2
31 examples: Add the workspace demo workflows

Stack 30/31. Base branch: stack/29-e2. Review and merge in order; this PR builds on the previous one.
Size: 9 files changed, 5188 insertions(+).
Checked: Typecheck of the e2e specs. The specs need the full stack: they run green on the merged branch.

Summary

This PR adds nine more Playwright specs under ui/e2e/workspace/. They cover run actions, the run header, the single-tab behavior, the shell, roles, remote nodes, settings, themes and a smoke test.

Why

PR 29 covers the node view, links and layout. This PR covers how a user starts, follows and stops runs, and how the page behaves for each role and theme. It is the last e2e PR. PR 31 follows with the demo examples.

Changes

  • run-actions.spec.ts: start from Run... with a parameter, enqueue and dequeue, Start of the saved definition, run of an unsaved draft, Stop gives Aborted.
  • run-header.spec.ts: latest run in the URL, facts as wide as their text, Healthy for a run that never ends, chip slots stay in place, run details popover.
  • single-tab.spec.ts: opens on the latest run with the dock collapsed, pick a past run and save with ?run kept, stale definition read-only, /executions?run redirect.
  • shell.spec.ts: Ctrl+S save through the diff dialog, colored diff in both views, external change dialog, read-only chip for a reader.
  • roles.spec.ts: each role gets only its items; no Run without the run permission.
  • remote.spec.ts: remoteNode stays on every request of a remote DAG.
  • settings.spec.ts: old section path, runtime profile in the Overview tab, leave guard on a dirty notifications draft.
  • theme-layout.spec.ts: the bar in each theme and locale, system theme, bar above the YAML panel.
  • smoke.spec.ts: opens a fixture DAG; loads for an old ?ui link.

How to review

  1. Read smoke.spec.ts, then single-tab.spec.ts.
  2. Read run-actions.spec.ts and run-header.spec.ts.
  3. Read shell.spec.ts and roles.spec.ts.
  4. Skim the rest.

Pay most attention to these places:

  • Specs that wait on a running run (Stop, Healthy): check for races and fixed sleeps.
  • roles.spec.ts is a parameterized test. Check that each role list is complete.

Tests

This PR is test code: remote.spec.ts, roles.spec.ts, run-actions.spec.ts, run-header.spec.ts, settings.spec.ts, shell.spec.ts, single-tab.spec.ts, smoke.spec.ts, theme-layout.spec.ts, all in ui/e2e/workspace/.

Screenshots

No visible UI change in this PR.
These specs cover the screens that PR 5 to PR 27 of the stack add.

Run bar
Start dialog
Dark workspace

This was referenced Oct 28, 2026
@yohamta0
yohamta0 force-pushed the stack/30-e3 branch 3 times, most recently from 838cbd8 to dc7227f Compare October 30, 2026 08:07
@yohamta0
yohamta0 force-pushed the stack/29-e2 branch 2 times, most recently from 95cce8b to fadf323 Compare October 30, 2026 08:43
@yohamta0
yohamta0 force-pushed the stack/30-e3 branch 3 times, most recently from e8d83c3 to a7eaf4b Compare October 31, 2026 05:37
@yohamta0
yohamta0 force-pushed the stack/29-e2 branch 2 times, most recently from e01e542 to c1e3a28 Compare October 31, 2026 06:28
@yohamta0
yohamta0 force-pushed the stack/30-e3 branch 2 times, most recently from 1b93440 to 9f8ed85 Compare October 31, 2026 09:21
SCcagg5 and others added 5 commits October 31, 2026 19:47
* e2e: workspace specs (1/2)
* Tighten workspace e2e checks and share helpers
* Pin the run and Back target in workspace e2e
Several workspace specs asserted that mode tabs, the executions and
editor panes, the run list and grid, the settings dialog, the workflow
steps list and the workflow menu are absent. No component renders
those test ids, so the checks could never fail. They are removed; the
positive checks beside them cover the behavior.

The canvas-click test now asserts that a click on the empty canvas
clears ?step. Without it, the later ?step=hello poll could pass at
once if deselection regressed.
The role test expected no "More run options" caret on a clean editor,
but the split button keeps the caret in place, disabled, for any role
that may execute, so that Start does not move when the draft becomes
dirty. The test now expects it disabled for those roles and absent for
the viewer.
The remote node test ignored requests that do not name the DAG, so a
/profiles request without remoteNode went unreported. Requests to
/profiles now count as node-scoped. The settings test read the tab
labels once from textContent, which is empty when the narrow mobile
strip shows icons only. It now checks the accessible names with
retrying assertions.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants