While fixing the workflow job selector I hit something worth raising about that one bug: the selector in the job tab bar reads Workflow Job 1/X on every task of a workflow, whichever one you are actually looking at, and picking another task from it does nothing at all, so the only way from one task to another is back out to the workflow's output graph.
ctrliq/ascender742
Why the unit suite missed it
The catch: a jest test asserting "picking a job navigates" passes against the broken code. The click bubbled out of the selector into the tab that hosts it, and RoutedTabs called navigate(undefined), quietly undoing the navigation. jsdom does not reproduce that. A real browser does.
Coverage is not the gap either. The file at the centre of it had a test all along, one that mocked out the component under test and asserted against the mock, but it didn't catch the issue.
What I built
A small Playwright suite, spanning ten specs over signing in, job tabs and the workflow selector, running on every pull request as an additional CI check called ui-e2e.
- Fixtures come from system job templates: no project, inventory, credential or network needed.
- It stands up the same environment CI already builds elsewhere, and stays outside
npm test.
Against the unfixed UI it fails five specs; with the fix all ten pass.
ctrliq/ascender762
Why jsdom cannot see this class of defect, what the suite covers today, how it is put together, and the flows still left to add:
ctrliq/ascender761