For teams whose Enzyme tests stopped at React 17
RTL Upgrade Deskshallow, wrapper.state(), instance(), Simulate.click, act from test-utils. The mechanical moves happen right here; the Enzyme tests get rewritten as behaviour tests.
Paste one React test file. Your browser moves act to 'react' and turns Simulate into fireEvent - the APIs react-dom/test-utils loses in React 19 - lists every Enzyme call (shallow, mount, find, simulate, prop, state, instance, setState, update) with its React Testing Library counterpart and a suggested query for each selector, flags the tests that check internals RTL will not show, and the StrictMode call counts that halve in React 19. Then the review, and the tests rewritten as behaviour tests.
The test file free
The scan free
What the scan found
Every Enzyme call and what it becomes
The skills' migration order
The migrated file free
What the page changed itself - act imported from 'react' instead of react-dom/test-utils, and Simulate replaced by fireEvent with its import. Enzyme is left as it was: the skill says never to translate it 1:1, so the rewrite lane turns it into behaviour tests.
migrated.test.jsx
The review metered
Pricing as soon as the session is ready...
Sign inThe reply could not be read. Here it is as it came back:
Caveats
Caveats
The page's check of this reply
Saved reviews
How it works - and what it cannot see
The scan reads the test file itself: comments, strings, template literals and regex literals are masked, every describe/it/test is matched to its closing bracket, and an Enzyme call is only counted when its chain starts at a wrapper (a variable assigned from shallow or mount) - so items.filter() in a test is not mistaken for Enzyme. It follows the skills: Enzyme has no React 18 adapter, so its tests are rewritten - not translated 1:1 - to assert what the user sees, with getByRole first in the query order; and in React 19, act comes from react, Simulate becomes fireEvent, and StrictMode no longer doubles effect calls.
It cannot see the component under test, so it cannot know which text or role an assertion should look for, or which StrictMode count is right - those are the review's (and the test run's) job. The page re-scans the rewritten file, so an Enzyme call or test-utils import left behind is flagged rather than trusted, and every test keeps its title.