Skip to content

Commit 94dd3b1

Browse files
committed
refactor: remove defaults and defaults-esm presets
BREAKING CHANGE - Use `createCjsPreset` as a replacement for `defaults` preset - Use `createEsmPreset` as a replacement for `defaults` preset
1 parent 35819c9 commit 94dd3b1

File tree

8 files changed

+4
-216
lines changed

8 files changed

+4
-216
lines changed

presets/defaults-esm/jest-preset.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

presets/defaults/jest-preset.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

presets/index.d.ts

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,4 @@
11
declare const _default: {
2-
defaults: {
3-
transformIgnorePatterns: string[];
4-
transform: import('ts-jest').JestConfigWithTsJest['transform'];
5-
testEnvironment: string;
6-
moduleFileExtensions: string[];
7-
snapshotSerializers: string[];
8-
};
9-
defaultsESM: {
10-
extensionsToTreatAsEsm: string[];
11-
moduleNameMapper: {
12-
tslib: string;
13-
};
14-
transform: import('ts-jest').JestConfigWithTsJest['transform'];
15-
transformIgnorePatterns: string[];
16-
testEnvironment: string;
17-
moduleFileExtensions: string[];
18-
snapshotSerializers: string[];
19-
};
20-
defaultTransformerOptions: import('ts-jest').TsJestTransformerOptions;
212
createCjsPreset: typeof import('../build/presets').createCjsPreset;
223
createEsmPreset: typeof import('../build/presets').createEsmPreset;
234
};

presets/index.js

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,6 @@
11
const ngJestPresets = require('../build/presets');
22

33
module.exports = {
4-
get defaults() {
5-
console.warn(`
6-
This preset is DEPRECATED and will be removed in the next major release.
7-
Please use "createCjsPreset" function instead. See documentation at https://thymikee.github.io/jest-preset-angular/docs/getting-started/presets#createcjspresetoptions
8-
`);
9-
10-
return ngJestPresets.defaultPreset;
11-
},
12-
get defaultsESM() {
13-
console.warn(`
14-
This preset is DEPRECATED and will be removed in the next major release.
15-
Please use "createEsmPreset" function instead. See documentation at https://thymikee.github.io/jest-preset-angular/docs/getting-started/presets#createesmpresetoptions
16-
`);
17-
18-
return ngJestPresets.defaultEsmPreset;
19-
},
20-
get defaultTransformerOptions() {
21-
console.warn(`
22-
These options are DEPRECATED and will be removed in the next major release.
23-
Please use "createCjsPreset" or "createEsmPreset" function instead. See documentation at https://thymikee.github.io/jest-preset-angular/docs/getting-started/presets
24-
`);
25-
26-
return ngJestPresets.defaultTransformerOptions;
27-
},
284
createCjsPreset: ngJestPresets.createCjsPreset,
295
createEsmPreset: ngJestPresets.createEsmPreset,
306
};

src/presets/__snapshots__/index.spec.ts.snap

Lines changed: 0 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,6 @@
22

33
exports[`Jest presets should have the correct types which come from \`ts-jest\` 1`] = `
44
"declare const _default: {
5-
defaults: {
6-
transformIgnorePatterns: string[];
7-
transform: import('ts-jest').JestConfigWithTsJest['transform'];
8-
testEnvironment: string;
9-
moduleFileExtensions: string[];
10-
snapshotSerializers: string[];
11-
};
12-
defaultsESM: {
13-
extensionsToTreatAsEsm: string[];
14-
moduleNameMapper: {
15-
tslib: string;
16-
};
17-
transform: import('ts-jest').JestConfigWithTsJest['transform'];
18-
transformIgnorePatterns: string[];
19-
testEnvironment: string;
20-
moduleFileExtensions: string[];
21-
snapshotSerializers: string[];
22-
};
23-
defaultTransformerOptions: import('ts-jest').TsJestTransformerOptions;
245
createCjsPreset: typeof import('../build/presets').createCjsPreset;
256
createEsmPreset: typeof import('../build/presets').createEsmPreset;
267
};
@@ -163,70 +144,3 @@ exports[`Jest presets should return jest config with ESM preset creator function
163144
],
164145
}
165146
`;
166-
167-
exports[`Jest presets should return the correct jest config with legacy preset config 1`] = `
168-
{
169-
"moduleFileExtensions": [
170-
"ts",
171-
"html",
172-
"js",
173-
"json",
174-
"mjs",
175-
],
176-
"snapshotSerializers": [
177-
"jest-preset-angular/build/serializers/html-comment",
178-
"jest-preset-angular/build/serializers/ng-snapshot",
179-
"jest-preset-angular/build/serializers/no-ng-attributes",
180-
],
181-
"testEnvironment": "jsdom",
182-
"transform": {
183-
"^.+\\.(ts|js|mjs|html|svg)$": [
184-
"jest-preset-angular",
185-
{
186-
"stringifyContentPathRegex": "\\.(html|svg)$",
187-
"tsconfig": "<rootDir>/tsconfig.spec.json",
188-
},
189-
],
190-
},
191-
"transformIgnorePatterns": [
192-
"node_modules/(?!.*\\.mjs$)",
193-
],
194-
}
195-
`;
196-
197-
exports[`Jest presets should return the correct jest config with legacy preset config 2`] = `
198-
{
199-
"extensionsToTreatAsEsm": [
200-
".ts",
201-
],
202-
"moduleFileExtensions": [
203-
"ts",
204-
"html",
205-
"js",
206-
"json",
207-
"mjs",
208-
],
209-
"moduleNameMapper": {
210-
"tslib": "tslib/tslib.es6.js",
211-
},
212-
"snapshotSerializers": [
213-
"jest-preset-angular/build/serializers/html-comment",
214-
"jest-preset-angular/build/serializers/ng-snapshot",
215-
"jest-preset-angular/build/serializers/no-ng-attributes",
216-
],
217-
"testEnvironment": "jsdom",
218-
"transform": {
219-
"^.+\\.(ts|js|html|svg)$": [
220-
"jest-preset-angular",
221-
{
222-
"stringifyContentPathRegex": "\\.(html|svg)$",
223-
"tsconfig": "<rootDir>/tsconfig.spec.json",
224-
"useESM": true,
225-
},
226-
],
227-
},
228-
"transformIgnorePatterns": [
229-
"node_modules/(?!tslib)",
230-
],
231-
}
232-
`;

src/presets/index.spec.ts

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,9 @@
1-
import fs from 'fs';
2-
import path from 'path';
1+
import fs from 'node:fs';
2+
import path from 'node:path';
33

4-
import { defaultPreset, defaultEsmPreset, createCjsPreset, createEsmPreset } from './';
4+
import { createCjsPreset, createEsmPreset } from './';
55

66
describe('Jest presets', () => {
7-
test.each([defaultPreset, defaultEsmPreset])(
8-
'should return the correct jest config with legacy preset config',
9-
(preset) => {
10-
expect(preset).toMatchSnapshot();
11-
},
12-
);
13-
147
it('should return jest config with CJS preset creator function without options', () => {
158
expect(createCjsPreset()).toMatchSnapshot();
169
});
@@ -35,7 +28,7 @@ describe('Jest presets', () => {
3528
).toMatchSnapshot();
3629
});
3730

38-
test('should have the correct types which come from `ts-jest`', () => {
31+
it('should have the correct types which come from `ts-jest`', () => {
3932
expect(fs.readFileSync(path.join(__dirname, '..', '..', 'presets/index.d.ts'), 'utf-8')).toMatchSnapshot();
4033
});
4134
});

src/presets/index.ts

Lines changed: 0 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,2 @@
1-
import type { JestConfigWithTsJest, TsJestTransformerOptions } from 'ts-jest';
2-
3-
import snapshotSerializers from '../serializers';
4-
5-
const baseConfig: Pick<JestConfigWithTsJest, 'testEnvironment' | 'moduleFileExtensions' | 'snapshotSerializers'> = {
6-
testEnvironment: 'jsdom',
7-
moduleFileExtensions: ['ts', 'html', 'js', 'json', 'mjs'],
8-
snapshotSerializers,
9-
};
10-
11-
const defaultTransformerOptions: TsJestTransformerOptions = {
12-
tsconfig: '<rootDir>/tsconfig.spec.json',
13-
stringifyContentPathRegex: '\\.(html|svg)$',
14-
};
15-
16-
const defaultPreset = {
17-
...baseConfig,
18-
transformIgnorePatterns: ['node_modules/(?!.*\\.mjs$)'],
19-
transform: {
20-
'^.+\\.(ts|js|mjs|html|svg)$': ['jest-preset-angular', defaultTransformerOptions],
21-
},
22-
};
23-
24-
const defaultEsmPreset = {
25-
...baseConfig,
26-
extensionsToTreatAsEsm: ['.ts'],
27-
moduleNameMapper: {
28-
tslib: 'tslib/tslib.es6.js',
29-
},
30-
transform: {
31-
'^.+\\.(ts|js|html|svg)$': [
32-
'jest-preset-angular',
33-
{
34-
...defaultTransformerOptions,
35-
useESM: true,
36-
},
37-
],
38-
},
39-
transformIgnorePatterns: ['node_modules/(?!tslib)'],
40-
};
41-
42-
export { defaultPreset, defaultEsmPreset, defaultTransformerOptions };
431
export { createCjsPreset } from './create-cjs-preset';
442
export { createEsmPreset } from './create-esm-preset';

website/docs/getting-started/presets.md

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -119,35 +119,3 @@ export default {
119119
...presetConfig,
120120
} satisfies Config;
121121
```
122-
123-
### Legacy presets
124-
125-
:::warning
126-
127-
`jest-preset-angular` **DON'T RECOMMEND** to use legacy presets because this approach is not flexible to configure Jest configuration.
128-
These legacy presets will be removed in the next major release and users are **HIGHLY RECOMMENDED** to migrate to use the above utility functions.
129-
130-
:::
131-
132-
| Preset name | Description |
133-
| ------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------- |
134-
| `jest-preset-angular/presets/default`<br/>or `jest-preset-angular` | TypeScript, JavaScript and HTML files (`js`, `.ts`, `.html`) will be transformed by `jest-preset-angular` to **CommonJS** syntax. |
135-
| `jest-preset-angular/presets/defaults-esm`<br/> | TypeScript, JavaScript and HTML files (`js`, `.ts`, `.html`) will be transformed by `jest-preset-angular` to **ESM** syntax. |
136-
137-
#### Example
138-
139-
```ts title="jest.config.ts" tab={"label": "TypeScript CJS"}
140-
import type { Config } from 'jest';
141-
142-
export default {
143-
preset: 'jest-preset-angular',
144-
} satisfies Config;
145-
```
146-
147-
```ts title="jest.config.mts" tab={"label": "TypeScript ESM"}
148-
import type { Config } from 'jest';
149-
150-
export default {
151-
preset: 'jest-preset-angular/presets/defaults-esm',
152-
} satisfies Config;
153-
```

0 commit comments

Comments
 (0)