# What changed in jest-preset-angular

> 65 changes in jest-preset-angular 8 to 17 from its official release notes, upgrade guides and advisories: 38 breaking, 1 security, 6 new APIs and options. Each one cited. Sources checked 2026-10-24. HTML: https://unstale.sh/npm/jest-preset-angular/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## jest-preset-angular 17

### Breaking changes

- Support for this package in peerDependencies is dropped; use @angular/platform-browser instead. (17.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v17.0.0), [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/v17.0.0/CHANGELOG.md)
- The minimum supported Angular version is now v20. (17.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v17.0.0), [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/v17.0.0/CHANGELOG.md)
- The minimum supported version is now 0.28.0. (17.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v17.0.0), [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/v17.0.0/CHANGELOG.md)
- Configuring ngJest through Jest's globals option is no longer supported; configure it through transform instead. (17.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v17.0.0), [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/v17.0.0/CHANGELOG.md)
- The minimum supported NodeJs version is now v20. (17.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v17.0.0), [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/v17.0.0/CHANGELOG.md)
- Support for the fallback is dropped because Angular v20 provides provideZonelessChangeDetection as a stable API. (17.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v17.0.0), [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/v17.0.0/CHANGELOG.md)

### Security

- The transformer avoids prototype pollution in the sha1 cache. (17.0.1) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v17.0.1)

### Fixes and other changes

- Polyfills TextEncoder/TextDecoder for the jsdom environment when loading the bundled Angular compiler CLI. (17.0.3) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v17.0.3)
- `.mjs` files are downlevel-transformed with esbuild to `es2016`. (17.0.2) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v17.0.2)

## jest-preset-angular 16

### Breaking changes

- Drops support for Angular 18, so projects using that Angular version are no longer supported. (16.0.0) — [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/v16.0.0/CHANGELOG.md), [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v16.0.0)

### New APIs and options

- Platform providers for TestBed can now be configured from the setup environment. (16.1.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v16.1.0)

### Tooling

- Adds support for Angular 22, allowing developers to use jest-preset-angular with that Angular release. (16.2.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v16.2.0)
- Adds support for Angular 21, allowing projects using that Angular version to use jest-preset-angular. (16.0.0) — [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/v16.0.0/CHANGELOG.md), [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v16.0.0)

### Fixes and other changes

- Use named exports in setup-env declaration files, fixing their type declarations. (16.1.5) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v16.1.5)
- Corrected the condition for detecting Angular 21 when patching module resolution. (16.1.3) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v16.1.3)
- Adapts the serializer regex for changes in angular/cdk. (16.1.2) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v16.1.2)
- Allows using moduleResolution: bundler with Angular 21. (16.1.2) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v16.1.2)
- The snapshot serializer is now compatible with Signal Forms. (16.1.1) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v16.1.1)

## jest-preset-angular 15

### Breaking changes

- Angular 18 is the minimum supported version. (15.0.0) — [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/v15.0.0/CHANGELOG.md)
- The defaults preset was removed; use createCjsPreset instead. (15.0.0) — [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/v15.0.0/CHANGELOG.md)
- The defaults-esm preset was removed; use createEsmPreset instead. (15.0.0) — [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/v15.0.0/CHANGELOG.md)
- jest-environment-jsdom is now a mandatory dependency that users must install explicitly. (15.0.0) — [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/v15.0.0/CHANGELOG.md)
- Jest 30 is required. (15.0.0) — [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/v15.0.0/CHANGELOG.md)
- jsdom is now a mandatory peer dependency that users must install explicitly. (15.0.0) — [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/v15.0.0/CHANGELOG.md)
- The minimum supported version of jsdom is 22. (15.0.0) — [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/v15.0.0/CHANGELOG.md)
- This resolver was removed because it is no longer needed for Jest 30. (15.0.0) — [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/v15.0.0/CHANGELOG.md)
- Supported Node.js versions are ^18.19.1 || ^20.11.1 || >=22.0.0. (15.0.0) — [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/v15.0.0/CHANGELOG.md)
- setup-jest files were removed; use setupZoneTestEnv or setupZonelessTestEnv for test environment setup. (15.0.0) — [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/v15.0.0/CHANGELOG.md)
- Generated snapshots no longer include the root id; update component snapshots with the Jest CLI -u option. (15.0.0) — [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/v15.0.0/CHANGELOG.md)
- TypeScript 5.5 is the minimum supported version. (15.0.0) — [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/v15.0.0/CHANGELOG.md)

### New APIs and options

- Use setupZonelessTestEnv as the replacement for zoneless test environment setup. (15.0.0) — [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/v15.0.0/CHANGELOG.md)
- Use setupZoneTestEnv as the replacement for zone test environment setup. (15.0.0) — [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/v15.0.0/CHANGELOG.md)
- Preset creator functions now allow customizing testEnvironment. (15.0.0) — [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/v15.0.0/CHANGELOG.md)

### Behavior and default changes

- Running ngcc is no longer required for Angular 16+ projects. (15.0.0) — [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/v15.0.0/CHANGELOG.md)

### Fixes and other changes

- Fixes handling of the processWithEsbuild transform option. (14.6.2, 15.0.3) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v15.0.3), [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v14.6.2)

## jest-preset-angular 13

### Breaking changes

- Support for Angular 11 and 12 is dropped. (13.0.0) — [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/main/CHANGELOG.md)
- The destroyAfterEach option is no longer available; use testEnvironmentOptions instead. (13.0.0) — [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/main/CHANGELOG.md)
- Jest 29 is required to use this release. (13.0.0) — [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/main/CHANGELOG.md)
- The target from tsconfig is respected according to user configuration instead of being hardcoded to ES2015. (13.0.0) — [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/main/CHANGELOG.md)
- The teardown option is no longer available; use testEnvironmentOptions instead. (13.0.0) — [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/main/CHANGELOG.md)

### Fixes and other changes

- jest-util was added to the package dependencies. (13.0.0) — [upgrade guide](https://github.com/thymikee/jest-preset-angular/blob/main/CHANGELOG.md)

## jest-preset-angular 10

### Breaking changes

- Angular 9 is no longer supported; the minimum supported Angular version is 10. (10.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/blob/HEAD/CHANGELOG.md)

## jest-preset-angular 9

### Breaking changes

- Support is dropped for Angular versions earlier than 8.0. (9.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v9.0.0)
- This AST transformer is removed; remove it from the Jest configuration. (9.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v9.0.0)
- Jest 27 is required. (9.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v9.0.0)
- The HTMLCommentSerializer path is changed to this serializer path. (9.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v9.0.0)
- The AngularSnapshotSerializer path is changed to this serializer path. (9.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v9.0.0)
- The AngularNoNgAttributesSnapshotSerializer path is changed to this serializer path. (9.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v9.0.0)
- Imports from jest-preset-angular should use the setup-jest entry point. (9.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v9.0.0)
- The preset no longer provides moduleNameMapper; users relying on its value need to configure their own mapping. (9.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v9.0.0)
- Support is dropped for Node.js 10; the required Node.js version is now >=12.13.0. (9.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v9.0.0)
- If skipLibCheck is not defined in tsconfig, the preset sets it to true; set it explicitly to false to override. (9.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v9.0.0)
- This AST transformer is removed; remove it from the Jest configuration. (9.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v9.0.0)
- The preset now uses its own transformer, wrapping ts-jest; configure Jest to use jest-preset-angular instead of ts-jest. (9.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v9.0.0)

### New APIs and options

- An ESM preset is added. (9.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v9.0.0)
- The package.json exports field is added to define package entry points. (9.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v9.0.0)

### Performance

- The compiler reuses Jest's cacheFS to reduce file system reading. (9.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v9.0.0)

### Tooling

- The compiler supports ESM. (9.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v9.0.0)
- A type definition is added for the presets entry point. (9.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v9.0.0)

### Fixes and other changes

- Zone ESM is loaded when Jest runs in ESM mode. (9.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v9.0.0)

## jest-preset-angular 8

### Breaking changes

- Custom Jest configurations must reference serializers, transformers, and setupJest from the build folder; update existing references. (8.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v8.0.0)

### Behavior and default changes

- The serializer is enabled by default. (8.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v8.0.0)
- The root-folder tsconfig.spec.json is supported by default; move one from src to the root or adjust the Jest configuration. (8.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v8.0.0)

### Tooling

- core-js is no longer needed as a package.json dependency unless it is imported manually in code. (8.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v8.0.0)

### Fixes and other changes

- The AST transformer now transforms styles assignments only inside @Component. (8.0.0) — [release notes](https://github.com/thymikee/jest-preset-angular/releases/tag/v8.0.0)
