Jest v30.3.0 Update: defineConfig, Timer Tick Mode & Key Fixes
Key Changes
Jest v30.3.0, released on March 10, 2026, introduces developer experience improvements that modernize Jest’s configuration story and enhance its fake timer capabilities. This release also fixes several long-standing issues.
defineConfig and mergeConfig Helpers
The headline feature is defineConfig and mergeConfig — type-safe configuration helpers inspired by Vite and Vitest:
// jest.config.ts
import { defineConfig } from 'jest-config';
export default defineConfig({
testEnvironment: 'jsdom',
transform: {
'^.+\\.tsx?$': 'ts-jest',
},
});
mergeConfig enables composing configurations from shared presets, making monorepo setups cleaner. This eliminates the guesswork of jest.config.ts — your IDE now autocompletes every option with full type safety.
Fake Timer Tick Mode
setTimerTickMode gives fine-grained control over how fake timers advance. This is useful when testing components that rely on specific timer behaviors — animation frames, debounced inputs, or polling intervals. The update also bumps sinon/fake-timers to v15 under the hood.
Critical Fixes
- Dynamic imports with
--experimental-vm-modules: Users can now utilize dynamicimport()when running with the--experimental-vm-modulesNode option. This was a blocker for teams migrating to ESM. --onlyFailureswith compilation errors: Failed tests due to compilation errors now correctly re-execute when using--onlyFailures, fixing a frustrating CI workflow issue.- GHA reporter console output: Console output now displays correctly when using the GitHub Actions reporter with
silent: false. - Coverage output with
--json: CLI coverage output is preserved when combining--jsonwith--outputFile.
Maintenance
- Replaced micromatch with picomatch across the codebase for better performance
- Updated migration guide for
jest.mock()case-sensitive path behavior in v30
Impact for QA Teams
The defineConfig helper is the biggest quality-of-life win — it brings Jest’s configuration experience in line with modern tooling standards. Teams maintaining complex Jest configs across multiple packages will benefit from mergeConfig. The ESM dynamic import fix unblocks migration paths for teams moving away from CommonJS. For a comprehensive guide on Jest setup, see our Jest testing tutorial.
