---
title: "How the NYT migrated its React testing approach in-place"
publication: "React Status"
issue: 420
published_at: "2025-03-12"
canonical_url: "https://react.statuscode.com/issues/420"
---

Plus an introduction to building APIs with Next.js. |        

#​420 — March 12, 2025 

[Read on the Web](https://react.statuscode.com/issues/<!--%20\\id%20-->)  

Together with [![Posthog\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_2303,h_420/e_make_transparent/co_white,e_outline:12/i4lkeq9vxu5ccjyxdkep.png)](https://dub.link/rstatus-mar12)  React Status  

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/daza5om7r144aonkpogz.jpg)](https://open.nytimes.com/how-the-new-york-times-systematically-migrated-from-enzyme-into-react-testing-library-b3ea538d001c)  

[How _The New York Times_ Migrated from Enzyme to React Testing Library](https://open.nytimes.com/how-the-new-york-times-systematically-migrated-from-enzyme-into-react-testing-library-b3ea538d001c) — A thorough look at the technical challenges and strategies the NYT used to perform a piecemeal upgrade of its React testing approach without disrupting either end users or other developers. 

Felipe Buenaño (NYT Open Team)   

💡 If you liked this, you might also enjoy [the NYT's take on upgrading to React 18.](https://open.nytimes.com/enhancing-the-new-york-times-web-performance-with-react-18-d6f91a7c5af8)  [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/b20a8995.png)](https://dub.link/rstatus-mar12) 

[A Newsletter to Help Flex Your Product Muscles](https://dub.link/rstatus-mar12) — Product for Engineers is a newsletter dedicated to helping improve your product skills. Get curated advice on building great products, lessons (and mistakes) they’ve learned building PostHog, and deep dives on the strategies of top startups. 

PostHog sponsor   

[Building APIs with Next.js](https://nextjs.org/blog/building-apis-with-nextjs) — A detailed, official introduction to the concepts behind using Next.js’ App Router and route handlers to build public APIs you can expose to web, mobile, and third-party clients. 

Lee Robinson   

[The URL is a Great Place to Store State in React](https://iamsahaj.xyz/blog/react-state-in-the-url/) — This is a surprisingly contentious idea and certainly suits some use cases more than others but, the author argues, _“Sometimes, the best place to store state is right in the URL.”_ 

Sahaj Jain   

[Reimplementing _Crossy Road_ with React Three Fiber](https://javascriptgametutorials.com/tutorials/react-three-fiber/crossy-road) — A well put together set of tutorials covering reimplementing the classic _Crossy Road_ game with React Three Fiber. In both written and video form. 

Hunor Márton Borbély   

[Instrument, Monitor, Fix: A Hands-On Debugging Class](https://sentry.io/resources/instrument-monitor-fix-workshop/?utm_medium=paid-community&utm_source=reactstatus&utm_campaign=fy26q1-workshop&utm_content=workshop-register) — Join us for a hands-on session where you’ll build it, watch it break, debug it, and go from “no idea what’s wrong” to fixing issues. 

Sentry sponsor   

📄 [Don't Reinvent the Modal, Use React Native Reusables Instead](https://spin.atomicobject.com/modal-react-native-reusables/) – A quick look at [React Native Reusables](https://github.com/mrzachnugent/react-native-reusables), a suite of `shadcn/ui`components. Jared Surato 

📄 [How Much Traffic Can a Pre-Rendered Next.js Site Really Handle?](https://martijnhols.nl/blog/how-much-traffic-can-a-pre-rendered-nextjs-site-handle) Martijn Hols 

📺 [React Router Middleware is Here](https://www.youtube.com/watch?v=H9WmtBchWtQ) – A 20-minute introduction to how React Router v7 approaches middleware. Alem Tuzlak 

📄 [Beyond React.memo: Smarter Ways to Optimize Performance](https://cekrem.github.io/posts/beyond-react-memo-smarter-performance-optimization/) Christian Ekrem 

📄 [Why React Offers the Best Model for LLM Workflows](https://www.gensx.com/blog/why-react-is-the-best-backend-workflow-engine) Evan Boyle  

🛠 Code, Tools & Libraries 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ruv3o47qtwkmmpjxa0t6.jpg)](https://rct.lukasbach.com/)  

[React Complex Tree: An Accessible Tree Component](https://rct.lukasbach.com/) — An advanced tree component with multi-select, drag-and-drop, renaming, and keyboard controls. 

Lukas Bach   

[Search Input Query: Search Input Query Parser and React Component](https://github.com/williamcotton/search-input-query) — A library that can take a supplied structured search query, parse it, generate SQL, as well as a React component for entering such queries. Interesting approach. 

William Cotton   

[UVCanvas: Render Shaded Canvases from React](https://uvcanvas.com/) — The examples are fantastic and will give you the idea immediately - they range from [clean and simple](https://uvcanvas.com/docs/components/lumiflex) to things like [look like macOS screensavers](https://uvcanvas.com/docs/components/novatrix) and [lava-lamp-esque experiences.](https://uvcanvas.com/docs/components/tranquiluxe) 

Latent Cat   

[⌘K: A Fast, Composable, Unstyled 'Command Menu' Control](https://cmdk.paco.me/) — The home page includes some neat examples in a variety of styles. [GitHub repo](https://github.com/pacocoursey/cmdk). Needs React 18+. 

Paco Coursey   

🔎 [React Native Package Checker](https://react-native-package-checker.vercel.app/) — An online tool to check React Native packages for compatibility with the ‘New Architecture’. 

Sandip Shiwakoti   

[Ink 5.2: Build Interactive CLI Apps using React](https://github.com/vadimdemedes/ink) — A terminal-based React renderer so you can build command line apps using React-style components. 

Vadim Demedes   

- [React Aria March 5 Release](https://react-spectrum.adobe.com/releases/2025-03-05.html) – A significant release for Adobe's powerful set of components, now with new `Toast`, `Tree` and `Virtualizer` components joining the set.
- [Reassure 1.4](https://github.com/callstack/reassure) – Performance testing companion for React and React Native.
- [react-jsx-parser 2.4](https://github.com/TroyAlford/react-jsx-parser) – Parses JSX and outputs rendered components.
- [Motion 12.5](https://github.com/motiondivision/motion)      

📰 Classifieds   

[Meticulous automatically creates and maintains an E2E UI test suite with zero developer effort](https://www.meticulous.ai?utm_source=react_status&utm_campaign=march12th). Relied on by 1000s of orgs, including Dropbox, Lattice, Bilt Rewards and many more. 

--- 

💸 Vercel bills too high? [Sign up for a free live session on March 20](https://pagepro.co/nextjs-hosting-cost-optimization?utm_source=newsletter&utm_medium=email&utm_campaign=react-status-ad&utm_id=self-hosting-nextjs-2nd-ad) & learn how to self-host Next.js apps for lower costs & full control.     

📢 Elsewhere in JavaTypeScript?  

A quick roundup of some other interesting stories in the broader landscape, in case you've missed them: 

- The Deno team did [a comparison of Node and Deno's TypeScript support.](https://deno.com/blog/typescript-in-node-vs-deno)
- [TypeScript is porting its compiler to Go.](https://socket.dev/blog/typescript-porting-compiler-to-go) The big win? 10x faster build times.
- 🤖 [LM Studio](https://lmstudio.ai/) is a popular desktop app for working with local LLM models and it [now has an official `lmstudio-js` library](https://lmstudio.ai/blog/introducing-lmstudio-sdk) for working with it from JavaScript.
- Still not convinced by TypeScript? [Dr. Axel Rauschmayer has a 'sales pitch' for you.](https://2ality.com/2025/03/typescript-sales-pitch.html) If _anyone_ could convince me, it's him!         

Curated by Peter Cooper and Terence C. Gannon. 

A **[Cooperpress](https://cooperpress.com/)** publication. 

[Change your email address](https://react.statuscode.com/edit_subscription/*|UID|*) or[Stop getting this newsletter](https://react.statuscode.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
