Node ships a test runner. node:test reached stability 2 (stable) in Node 20 and has since grown hooks, mocks, snapshots, coverage, reporters and a watch mode, so your Express 24,430 routes and Mongo repositories can be tested with no dependencies and no build step.
A test framework is the part of a toolchain that ages worst: it hooks the module loader, patches globals and needs its own transform pipeline. This one ships with the runtime, so it understands ES modules, require(esm) and TypeScript type stripping the day those land. It spawns each test file as a child process, collects a stream of structured events from every child, and feeds that stream to a reporter.

Front-End Web Development introduced Vitest 102,989 , Jest 62,362 and Playwright 26,280 , and nothing here replaces them: Vitest owns the React 7,897 component layer, Playwright the browser, this runner the server side. Against Vitest 5 and Jest 30 it trades DOM testing, a watch UI and a plugin ecosystem for no dependencies and no config file. Everything below ran on Node 25.8.0; experimental features are labeled, and Node 26 additions come from its documentation.