Atomic Testing
Portable UI testing utilities that unify test code across frameworks and libraries. The project provides a collection of packages for describing UI scenes and interacting with components consistently whether you test with React, Playwright or other tooling.
Documentation is available at https://atomic-testing.dev/.
Packages​
This repository contains multiple packages under the packages/ directory,
including but not limited to:
-
@atomic-testing/core– core APIs for defining scene parts and running tests. -
@atomic-testing/react-legacy,@atomic-testing/react-18, and@atomic-testing/react-19– adapters for React applications. -
@atomic-testing/playwright– integration with Playwright for end-to-end tests. -
Component driver packages such as
@atomic-testing/component-driver-htmland Material UI variants, used to drive specific UI components.runner.
Stability & version support policy​
The stable public API is the . barrel exports of the in-scope packages —
core, dom-core, react-core, react-18, react-19, react-legacy,
vue-3, playwright, and component-driver-html. That surface is frozen under
SemVer, machine-checked by a committed API Extractor
report per package (etc/<package>.api.md), and governed by a documented
deprecation lifecycle. Anything else — every @atomic-testing/internal-* package
and every export tagged @internal — is not covered by the guarantee.
Full policy, including the framework/Playwright/Node support matrix:
ADR-006.
MUI driver majors​
Material UI moves fast and each major has a distinct rendered DOM, so this project ships one driver package per MUI major (see ADR-003). To keep the maintained surface focused, older majors reach end of support once newer ones are stable.
| Driver family | Supported majors | End of support |
|---|---|---|
| MUI (core) | v6, v7, v9 | v5 - ended 2026-06-27 |
| MUI-X | v6, v7, v8, v9 | v5 - ended 2026-06-27 |
MUI 5 / MUI-X 5 are no longer supported as of 2026-06-27. The
@atomic-testing/component-driver-mui-v5 and
@atomic-testing/component-driver-mui-x-v5 packages are frozen at 0.81.0:
they remain installable at that version but receive no fixes, new drivers, or
CI/e2e coverage, and their test suites no longer run. New work targets v6/v7/v9
(MUI-X also v8 and v9). Rationale and migration notes:
ADR-005.
Note: MUI Core has no v8 — it jumped
7.3.11 → 9.0.0to unify versioning with MUI X, so@atomic-testing/component-driver-mui-v9is the successor to v7 (there is no-mui-v8package).Note: the MUI-X date/time picker drivers originally shipped only in the v5 package. The v9 package revives a read-capable
DesktopDatePickerdriver (rewritten for the v9PickersSectionListfield DOM); writing a value and the other picker variants are tracked as follow-ups.
Getting Started​
-
Install Node.js (v22.12 or newer) and pnpm (v10 or newer).
-
Install the dependencies:
pnpm install -
Add the packages you need to your project. A minimal setup might include the core and React packages:
pnpm add @atomic-testing/core @atomic-testing/react-18Additional component drivers can be installed in the same way, for example:
pnpm add @atomic-testing/component-driver-html -
Define your scene parts, create a test engine using the adapter for your framework, and write tests that interact with the scene.
For detailed guides and examples, see the online documentation.
Contributing​
Pull requests are welcome. Before submitting, run the checks defined in the root
package.json:
pnpm run check:lint
pnpm run check:style
pnpm run check:types