# Changelog

> Find the capabilities and fixes added in each Retest release.

Source: https://rehearsal.dev/retest/docs/changelog

Use this page to see what changed when you upgrade Retest. Each release lists the capabilities and fixes that affect your tests, with links to setup and usage examples.

## 0.2.0

This release adds files, browser dialogs, popups, frames, drag and drop, mocked requests, screenshot comparisons, layout checks and test inboxes. These changes were checked on Chrome on macOS unless an entry says otherwise. Feature guides list supported engines and their limits; Firefox and WebKit refuse unsupported operations by name.

### Files and browser windows

Tests can upload files by path or content with `setInputFiles`, catch a picker with `page.fileChooser` and save downloads with `page.download`. Downloads become run artefacts, and Retest withholds a download when it detects a known secret value in the file. Uploads and file pickers also work in Electron. See [Uploads and downloads](https://rehearsal.dev/retest/docs/guides/files.md).

`page.dialog` lets a test accept or dismiss alert, confirm, prompt and beforeunload dialogs. `page.popup` returns a page your app opened, with its own locators, actions, checks and screenshots. Dialogs also work in Electron, including at startup; Electron popups are unsupported. See [Dialogs and popups](https://rehearsal.dev/retest/docs/guides/dialogs-and-popups.md).

### Elements and requests

Finders now search open shadow roots. On Firefox and WebKit, this includes text, test id, CSS and placeholder queries; role and label queries have restrictions. Chrome and Chromium tests can also enter nested frames and frames from another site with `page.frame`. See [Frames and shadow DOM](https://rehearsal.dev/retest/docs/guides/frames-and-shadow-dom.md).

`locator.dragTo` supports HTML drag and drop and mouse-driven lists, including in Electron. `page.route` can answer a request with a response you provide or refuse it, and `page.unroute` removes the route. See [Drag and drop](https://rehearsal.dev/retest/docs/guides/drag-and-drop.md) and [Mocking requests](https://rehearsal.dev/retest/docs/guides/mocking-requests.md).

### New checks and inboxes

`toHaveScreenshot` compares a page or element with a saved baseline and leaves expected, actual and difference images on failure. Page comparisons also work on Firefox and WebKit. Layout matchers check overlap, clipped text, viewport overflow and horizontal scrolling on Chrome and Chromium. See [Screenshot comparisons](https://rehearsal.dev/retest/docs/guides/screenshots.md) and [Layout checks](https://rehearsal.dev/retest/docs/guides/layout-checks.md).

```sh
npx retest run --update-screenshots
```

Use `--update-screenshots` to write the baselines your tests compare against. Retest passes those screenshot checks and reports how many baselines it wrote, so review the images before accepting them.

Test inboxes let a test read a one-time code or sign-in link from a configured mailbox and use it without holding the secret value. See [Email codes and links](https://rehearsal.dev/retest/docs/guides/email-codes-and-links.md). Agent sessions also report the dialogs Retest answered and the file pickers it closed.

### Fixes

- Closing a browser after its main process was killed no longer fails on a busy machine.
- Saving storage state after leaving an origin with a service worker no longer counts Chrome's own update check as a page request.
- Firefox now refuses a selection of several options before looking for the element, even when those options are already selected.
- An Electron app that shows an alert before its debugging connection is ready no longer hangs during launch.

## 0.1.0

The first public release published `@rehearsal-labs/retest` on npm for Node.js 24.12 or later. It introduced the test runner and independent drivers for Chromium, Firefox, WebKit, iOS simulator apps, macOS apps and Electron, with named apps that one test can use together.

It included locators, actions, retrying checks, saved sign-in state, secrets, AI checks and run evidence. The command line could initialise a project, check its setup, run tests and inspect saved results, with a short report for coding agents. A compatibility adapter ran the supported subset of Playwright test files.

## Next steps

- [Quick start](https://rehearsal.dev/retest/docs/quick-start.md): Install Retest and run a test against your app.
- [Roadmap](https://rehearsal.dev/retest/docs/roadmap.md): Check current limits and proposed additions.
- [Browsers](https://rehearsal.dev/retest/docs/platforms/browsers.md): Choose a browser with the capabilities your tests need.
