Skip to content

The @nx/jest plugin provides various migrations to help you migrate to newer versions of jest projects within your Nx workspace. Below is a complete reference for all available migrations.

Version: 22.3.2-beta.0

Replace removed matcher aliases in Jest v30 with their corresponding matcher

NameVersion
jest>=30.0.0

Replaces removed Jest matcher aliases in test files with their corresponding matchers to align with Jest v30 changes. Read more at the Jest v30 migration notes.

apps/myapp/src/app.spec.ts
describe('test', () => {
it('should pass', async () => {
expect(mockFn).toBeCalled();
expect(mockFn).toBeCalledTimes(1);
expect(mockFn).toBeCalledWith(arg);
expect(mockFn).lastCalledWith(arg);
expect(mockFn).nthCalledWith(1, arg);
expect(mockFn).toReturn();
expect(mockFn).toReturnTimes(1);
expect(mockFn).toReturnWith(value);
expect(mockFn).lastReturnedWith(value);
expect(mockFn).nthReturnedWith(1, value);
expect(() => someFn()).toThrowError();
expect(() => someFn()).not.toThrowError();
await expect(someAsyncFn()).rejects.toThrowError();
await expect(someAsyncFn()).resolves.not.toThrowError();
});
});
apps/myapp/src/app.spec.ts
describe('test', () => {
it('should pass', async () => {
expect(mockFn).toHaveBeenCalled();
expect(mockFn).toHaveBeenCalledTimes(1);
expect(mockFn).toHaveBeenCalledWith(arg);
expect(mockFn).toHaveBeenLastCalledWith(arg);
expect(mockFn).toHaveBeenNthCalledWith(1, arg);
expect(mockFn).toHaveReturned();
expect(mockFn).toHaveReturnedTimes(1);
expect(mockFn).toHaveReturnedWith(value);
expect(mockFn).toHaveLastReturnedWith(value);
expect(mockFn).toHaveNthReturnedWith(1, value);
expect(() => someFn()).toThrow();
expect(() => someFn()).not.toThrow();
await expect(someAsyncFn()).rejects.toThrow();
await expect(someAsyncFn()).resolves.not.toThrow();
});
});

Version: 22.3.0-beta.3

The following packages will be updated:

NameVersionAlways add to package.json
jest^30.0.0Updated only
@types/jest^30.0.0Updated only
expect^30.0.0Updated only
@jest/globals^30.0.0Updated only
jest-jasmine2^30.0.0Updated only
jest-environment-jsdom^30.0.0Updated only
jest-util^30.0.0Updated only
babel-jest^30.0.0Updated only
@swc/jest~0.2.38Updated only

22.3.0-jest-preset-angular-package-updates

Section titled “22.3.0-jest-preset-angular-package-updates”

Version: 22.3.0-beta.3

The following packages will be updated:

NameVersionAlways add to package.json
jest-preset-angular~16.0.0Updated only

Version: 22.2.0-beta.2

Convert jest.config.ts files from ESM to CJS syntax (export default -> module.exports, import -> require) for projects using CommonJS resolution to ensure correct loading under Node.js type-stripping.

Converts jest.config.ts files to jest.config.cts. This is needed because Node.js type-stripping in newer versions (22+, 24+) can cause issues with ESM syntax in .ts files when the project is configured for CommonJS.

This migration only runs if @nx/jest/plugin is registered in nx.json.

jest.config.ts
import { foo } from 'bar';
import baz from 'qux';
export default {
displayName: 'myapp',
preset: foo,
transform: baz,
};
jest.config.cts
const { foo } = require('bar');
const baz = require('qux').default ?? require('qux');
module.exports = {
displayName: 'myapp',
preset: foo,
transform: baz,
};

Version: 21.3.0-beta.3

Rename the CLI option testPathPattern to testPathPatterns.

Rename testPathPattern to testPathPatterns

Section titled “Rename testPathPattern to testPathPatterns”

Renames the testPathPattern option to testPathPatterns in the @nx/jest:jest executor configuration to align with Jest v30 CLI changes. Read more at the Jest v30 migration notes.

Rename the option in project configuration:

apps/myapp/project.json
{
"targets": {
"test": {
"executor": "@nx/jest:jest",
"options": {
"jestConfig": "apps/myapp/jest.config.ts",
"testPathPattern": "some-regex"
}
}
}
}
apps/myapp/project.json
{
"targets": {
"test": {
"executor": "@nx/jest:jest",
"options": {
"jestConfig": "apps/myapp/jest.config.ts",
"testPathPatterns": "some-regex"
}
}
}
}

Rename the option in project configuration with configurations:

apps/myapp/project.json
{
"targets": {
"test": {
"executor": "@nx/jest:jest",
"options": {
"jestConfig": "apps/myapp/jest.config.ts",
"testPathPattern": "some-regex"
},
"configurations": {
"development": { "testPathPattern": "regex-dev" },
"production": { "testPathPattern": "regex-prod" }
}
}
}
}
apps/myapp/project.json
{
"targets": {
"test": {
"executor": "@nx/jest:jest",
"options": {
"jestConfig": "apps/myapp/jest.config.ts",
"testPathPatterns": "some-regex"
},
"configurations": {
"development": { "testPathPatterns": "regex-dev" },
"production": { "testPathPatterns": "regex-prod" }
}
}
}
}

Rename the option in a target default using the @nx/jest:jest executor:

nx.json
{
"targetDefaults": {
"test": {
"executor": "@nx/jest:jest",
"options": {
"jestConfig": "{projectRoot}/jest.config.ts",
"testPathPattern": "some-regex"
}
}
}
}
nx.json
{
"targetDefaults": {
"test": {
"executor": "@nx/jest:jest",
"options": {
"jestConfig": "{projectRoot}/jest.config.ts",
"testPathPatterns": "some-regex"
}
}
}
}

Rename the option in a target default using the @nx/jest:jest executor as the key:

nx.json
{
"targetDefaults": {
"@nx/jest:jest": {
"options": {
"jestConfig": "{projectRoot}/jest.config.ts",
"testPathPattern": "some-regex"
}
}
}
}
nx.json
{
"targetDefaults": {
"@nx/jest:jest": {
"options": {
"jestConfig": "{projectRoot}/jest.config.ts",
"testPathPatterns": "some-regex"
}
}
}
}

Version: 21.3.0-beta.3

Replace removed matcher aliases in Jest v30 with their corresponding matcher

NameVersion
jest>=30.0.0

Replaces removed Jest matcher aliases in test files with their corresponding matchers to align with Jest v30 changes. Read more at the Jest v30 migration notes.

apps/myapp/src/app.spec.ts
describe('test', () => {
it('should pass', async () => {
expect(mockFn).toBeCalled();
expect(mockFn).toBeCalledTimes(1);
expect(mockFn).toBeCalledWith(arg);
expect(mockFn).lastCalledWith(arg);
expect(mockFn).nthCalledWith(1, arg);
expect(mockFn).toReturn();
expect(mockFn).toReturnTimes(1);
expect(mockFn).toReturnWith(value);
expect(mockFn).lastReturnedWith(value);
expect(mockFn).nthReturnedWith(1, value);
expect(() => someFn()).toThrowError();
expect(() => someFn()).not.toThrowError();
await expect(someAsyncFn()).rejects.toThrowError();
await expect(someAsyncFn()).resolves.not.toThrowError();
});
});
apps/myapp/src/app.spec.ts
describe('test', () => {
it('should pass', async () => {
expect(mockFn).toHaveBeenCalled();
expect(mockFn).toHaveBeenCalledTimes(1);
expect(mockFn).toHaveBeenCalledWith(arg);
expect(mockFn).toHaveBeenLastCalledWith(arg);
expect(mockFn).toHaveBeenNthCalledWith(1, arg);
expect(mockFn).toHaveReturned();
expect(mockFn).toHaveReturnedTimes(1);
expect(mockFn).toHaveReturnedWith(value);
expect(mockFn).toHaveLastReturnedWith(value);
expect(mockFn).toHaveNthReturnedWith(1, value);
expect(() => someFn()).toThrow();
expect(() => someFn()).not.toThrow();
await expect(someAsyncFn()).rejects.toThrow();
await expect(someAsyncFn()).resolves.not.toThrow();
});
});

Version: 21.3.0-beta.3

The following packages will be updated:

NameVersionAlways add to package.json
jest~30.0.0Updated only
@types/jest~30.0.0Updated only
expect~30.0.0Updated only
@jest/globals~30.0.0Updated only
jest-jasmine2~30.0.0Updated only
jest-environment-jsdom~30.0.0Updated only
babel-jest~30.0.0Updated only
@swc/jest~0.2.38Updated only

Version: 21.3.3-beta.0

The following packages will be updated:

NameVersionAlways add to package.json
ts-jest~29.4.0Updated only

Version: 21.3.3-beta.3

The following packages will be updated:

NameVersionAlways add to package.json
jest-util~30.0.0Updated only

replace-getJestProjects-with-getJestProjectsAsync-v21

Section titled “replace-getJestProjects-with-getJestProjectsAsync-v21”

Version: 21.0.0-beta.9

Replace usage of getJestProjects with getJestProjectsAsync.

Replace Usage of getJestProjects with getJestProjectsAsync

Section titled “Replace Usage of getJestProjects with getJestProjectsAsync”

Replaces the usage of the removed getJestProjects function with the getJestProjectsAsync function.

jest.config.ts
import { getJestProjects } from '@nx/jest';
export default {
projects: getJestProjects(),
};
jest.config.ts
import { getJestProjectsAsync } from '@nx/jest';
export default async () => ({
projects: await getJestProjectsAsync(),
});

Version: 21.0.0-beta.10

Remove the previously deprecated and unused tsConfig option from the @nx/jest:jest executor.

Removes the previously deprecated and unused tsConfig option from the @nx/jest:jest executor configuration in all projects.

Remove the option from the project configuration:

apps/myapp/project.json
{
"targets": {
"test": {
"executor": "@nx/jest:jest",
"options": {
"jestConfig": "apps/myapp/jest.config.ts",
"tsConfig": "apps/myapp/tsconfig.spec.json"
}
}
}
}
apps/myapp/project.json
{
"targets": {
"test": {
"executor": "@nx/jest:jest",
"options": {
"jestConfig": "apps/myapp/jest.config.ts"
}
}
}
}

Remove the option from a target default using the @nx/jest:jest executor:

nx.json
{
"targetDefaults": {
"test": {
"executor": "@nx/jest:jest",
"options": {
"jestConfig": "{projectRoot}/jest.config.ts",
"tsConfig": "{projectRoot}/tsconfig.spec.json"
}
}
}
}
nx.json
{
"targetDefaults": {
"test": {
"executor": "@nx/jest:jest",
"options": {
"jestConfig": "{projectRoot}/jest.config.ts"
}
}
}
}

Remove the option from a target default using the @nx/jest:jest executor as the key:

nx.json
{
"targetDefaults": {
"@nx/jest:jest": {
"options": {
"jestConfig": "{projectRoot}/jest.config.ts",
"tsConfig": "{projectRoot}/tsconfig.spec.json"
}
}
}
}
nx.json
{
"targetDefaults": {
"@nx/jest:jest": {
"options": {
"jestConfig": "{projectRoot}/jest.config.ts"
}
}
}
}

replace-getJestProjects-with-getJestProjectsAsync

Section titled “replace-getJestProjects-with-getJestProjectsAsync”

Version: 20.0.0-beta.5

Replace usage of getJestProjects with getJestProjectsAsync.

Replace Usage of getJestProjects with getJestProjectsAsync

Section titled “Replace Usage of getJestProjects with getJestProjectsAsync”

Replaces the usage of the deprecated getJestProjects function with the getJestProjectsAsync function.

jest.config.ts
import { getJestProjects } from '@nx/jest';
export default {
projects: getJestProjects(),
};
jest.config.ts
import { getJestProjectsAsync } from '@nx/jest';
export default async () => ({
projects: await getJestProjectsAsync(),
});