← SkillSafe
RTL Upgrade Desk

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.

Try a sample:

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

Pricing as soon as the session is ready...

NOT RUN YET

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.