@matware/e2e-runner 1.5.0: Lighter Tests & a Redesigned Live Dashboard
select_combobox, wait gone and nested modules kill the evaluate blocks. Plus a redesigned LIVE view with a filmstrip, auto-follow, and WCAG AA dark mode.


Version 1.5.0 of @matware/e2e-runner goes after the part that hurts most in declarative E2E testing: the “hard” widgets — MUI autocompletes, modals, spinners — that used to force a hand-written evaluate block with raw JavaScript. Those cases are now a single action. And while your tests run, the dashboard shows them live better than ever.
Lighter tests
The headline change is a set of new actions that replace imperative code with declarative intent:
select_combobox: opens a MUI Autocomplete/Select, filters, and picks the option in a single action.clickwithscope:"dialog",visible:true,last:true: click by text inside a modal, without fighting ambiguous selectors.waitwithgone: waits for an element to disappear (a spinner, a backdrop) instead of a fixedsleep. This alone removes one of the biggest sources of flakiness.type_reactwithblurandwaitAfter: for React-controlled inputs that need to fire validation on blur.- Nested modules: a module can compose other modules and forward their parameters, so you stop copy-pasting sequences.
The before/after speaks for itself. Selecting a country in an autocomplete went from this:
{
"action": "evaluate",
"script": "const i=document.querySelector('#country');i.focus();i.value='Arg';i.dispatchEvent(new Event('input',{bubbles:true}));await new Promise(r=>setTimeout(r,800));[...document.querySelectorAll('.MuiAutocomplete-option')].find(o=>o.textContent.includes('Argentina')).click();"
}
to this:
{ "action": "select_combobox", "selector": "#country", "filter": "Arg", "option": "Argentina" },
{ "action": "wait", "gone": ".MuiBackdrop-root" }
Fewer lines, no magic setTimeout, and — most importantly — no blind waits: wait gone syncs against the real state of the DOM.
Redesigned live dashboard
The LIVE view was redesigned from scratch. The screenshot feed now sits across the top horizontally, with a filmstrip of the latest frames in fixed slots so the screen doesn’t jump around. It adds auto-follow of the running test (with a manual selector if you want to pin a different one) and click-to-enlarge on any capture.
The Screenshots tab gained a Find blank scan that detects and deletes blank captures so they don’t pollute your reports. And yes, there’s a new favicon: the E² monogram.
Quality of life
- WCAG AA dark-mode contrast across the whole interface.
- The accent color (cyan) is now decoupled from the PASS green, so you don’t confuse “selected” with “passed”.
- More readable typography and project-selection persistence across reloads.
How to update
npm i @matware/e2e-runner@1.5.0
The full details are in the CHANGELOG. Coming from an older version? Start by replacing your combobox evaluate blocks and your sleeps with select_combobox and wait gone: it’s the lowest-effort, highest-impact change for stability.