Framework and Runner Support
Atomic Testing is an atomic table: every runtime, runner and design-system driver is one small npm package sharing the same contract. This page is the single place to check whether your stack is in the table today โ and how strongly each combination is supported.
What's supported
The Atomic Table.
Every runtime, runner and design system is one small npm package with the same contract. New elements arrive without touching your tests.
- ReReactv16โ19
- VuVuev3
- AnAngularv20โ22
- SvSvelteunclaimed
- JeJestjsdom
- ViVitestjsdom ยท browser
- SbStorybookportable stories
- ๐ญPwPlaywrighte2e ยท real browser
- CyCypressunclaimed
- HtPlain HTMLall frameworks
- MuMaterial UIreact ยท v5โ7
- MxMUI Xreact
- RxRadix UIreact
- Shshadcn/uireact
- โณAsAstryxreact ยท meta
- FlFluent UI v9 (Fluent 2)React
- PvPrimeVuevue 3
- ReReka UIVue 3
- AmNg Materialangular
- ??Your driverone file, not a fork
How strongly
Tiers, not promises.
Framework ร runner, generated from the compatibility data behind create atomic-testing โ it can't drift from what the CLI scaffolds.
| Jest | Vitest | Storybook | Playwright | |
|---|---|---|---|---|
| React | Verified | Experimentaljsdom ยท browser | Experimental | Experimental |
| Vue 3 | Verified | Experimentaljsdom only | your PR โ | Experimental |
| Angular | โDisabled | Experimentalbrowser mode only | your PR โ | Experimental |
- Verified โ green fixture in the monorepo
- Experimental โ CLI warns before writing
- โ Disabled โ refused with a reason
- Waiting for a PR
The tier matrix is generated from the same compatibility data that powers
create atomic-testing, so it can't drift from what the scaffolder
actually offers: if a combination isn't there, the CLI won't emit it either. The dashed
tiles and your PR โ cells are deliberate gaps โ Svelte, Cypress and a Vue/Angular
Storybook recipe aren't built yet. Each is a driver or recipe away, not a fork.
Verified vs experimentalโ
Every offered combination carries a support tier:
- Verified โ backed by a green fixture in this monorepo that proves the recipe works end-to-end. Today that's React + Jest and Vue 3 + Jest, together with their design-system drivers.
- Experimental โ composed best-effort, with no proving fixture yet. Everything on Vitest, Angular, or Playwright falls here. The scaffolder prints a warning before writing an experimental recipe so you know you're on a less-travelled path.
- Waiting for a PR โ a dashed
your PR โcell (or an unclaimed tile) is a slot left open on purpose: the combination isn't wired up yet, but the atomic contract means it's a driver or recipe away, not a rewrite.
On the in-process runners (Jest, Vitest, Vitest browser mode) the generated example always
drives a real state change through the framework-agnostic HTML driver,
so the example test is green regardless of tier โ experimental means the surrounding config is
unproven, not that the test won't pass. The Playwright recipe is the exception: it scaffolds a
placeholder *.e2e starter test that only turns green once your app serves the page.
The Storybook columnโ
The Storybook column is the @atomic-testing/storybook package, which runs portable
stories under Vitest browser mode (@storybook/addon-vitest) with no framework
act()/nextTick() wrapping. It isn't one of the runners create atomic-testing
scaffolds, so it sits outside the generated matrix: React has a proven path today, while
Vue and Angular are open for a contribution.
Refused combinationsโ
Some cells are disabled or simply waiting for a PR, and the CLI refuses the disabled ones with a clear message rather than emitting config that can't work:
- Angular + Jest and Angular + jsdom Vitest are registered but disabled โ Angular runs under Vitest browser mode in Atomic Testing. Hover the disabled badge for the exact reason.
- Vanilla / no framework is refused outright: no per-framework
TestEngineships for plain DOM yet, so pick React, Vue or Angular.
Next stepโ
Ready to scaffold? Head to the Quick Start โ create atomic-testing
detects your framework, runner and design system, then writes a runner config and a
runnable example test for you.