← All posts
01 Jun 2026Matias Aguirre

@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.

e2e-runnertestingqadashboardopen-source
E2E Runner 1.5.0 with the redesigned LIVE view and new declarative actions
E2E Runner 1.5.0 with the redesigned LIVE view and new declarative actions

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.
  • click with scope:"dialog", visible:true, last:true: click by text inside a modal, without fighting ambiguous selectors.
  • wait with gone: waits for an element to disappear (a spinner, a backdrop) instead of a fixed sleep. This alone removes one of the biggest sources of flakiness.
  • type_react with blur and waitAfter: 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.

Share
Next step

Ready to Start Your Project?

Let's discuss how technology can transform your organization. We offer technical consultations and custom solutions tailored to institutional requirements. Schedule a complimentary strategic session.

Get in touch
Free consultationNo commitmentFast response