Skip to content

Commit 5251354

Browse files
committed
refactor: JsWithBabelPreset not compat with original transform type
1 parent 7d001be commit 5251354

File tree

6 files changed

+68
-38
lines changed

6 files changed

+68
-38
lines changed

e2e/presets/__tests__/presets.spec.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import { JS_EXT_TO_TREAT_AS_ESM, TS_EXT_TO_TREAT_AS_ESM } from 'ts-jest'
22
import presets from 'ts-jest/presets'
33

4+
import extendedJestConfig from '../extended-jest-config'
5+
46
const defaultPreset = require('ts-jest/jest-preset')
57

68
test('presets', () => {
@@ -75,3 +77,7 @@ test('presets', () => {
7577
},
7678
})
7779
})
80+
81+
test('should allow extending jest config without type issues when using create preset util functions', () => {
82+
expect(extendedJestConfig).toBeTruthy()
83+
})

e2e/presets/extended-jest-config.ts

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import {
2+
createDefaultPreset,
3+
createDefaultEsmPreset,
4+
createJsWithTsPreset,
5+
createJsWithTsEsmPreset,
6+
createJsWithBabelPreset,
7+
createJsWithBabelEsmPreset,
8+
type JestConfigWithTsJest,
9+
} from 'ts-jest'
10+
11+
const defaultPreset: JestConfigWithTsJest = {
12+
...createDefaultPreset(),
13+
testEnvironment: 'jsdom',
14+
}
15+
16+
const defaultEsmPreset: JestConfigWithTsJest = {
17+
...createDefaultEsmPreset(),
18+
testEnvironment: 'jsdom',
19+
}
20+
21+
const jsWithTsPreset: JestConfigWithTsJest = {
22+
...createJsWithTsPreset(),
23+
testEnvironment: 'jsdom',
24+
}
25+
26+
const jsWithTsEsmPreset: JestConfigWithTsJest = {
27+
...createJsWithTsEsmPreset(),
28+
testEnvironment: 'jsdom',
29+
}
30+
31+
const jsWithBabelPreset: JestConfigWithTsJest = {
32+
...createJsWithBabelPreset(),
33+
testEnvironment: 'jsdom',
34+
}
35+
36+
const jsWithBabelEsmPreset: JestConfigWithTsJest = {
37+
...createJsWithBabelEsmPreset(),
38+
testEnvironment: 'jsdom',
39+
}
40+
41+
export default {
42+
defaultPreset,
43+
defaultEsmPreset,
44+
jsWithTsPreset,
45+
jsWithTsEsmPreset,
46+
jsWithBabelPreset,
47+
jsWithBabelEsmPreset,
48+
}

src/cli/__snapshots__/cli.spec.ts.snap

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ exports[`config init should create a jest config file with cli options for confi
2525
module.exports = {
2626
testEnvironment: "jsdom",
2727
transform: {
28-
"^.+.jsx?$": ["babel-jest",{}],
28+
"^.+.jsx?$": "babel-jest",
2929
},
3030
};"
3131
`;
@@ -35,7 +35,7 @@ exports[`config init should create a jest config file with cli options for confi
3535
export default {
3636
testEnvironment: "jsdom",
3737
transform: {
38-
"^.+.jsx?$": ["babel-jest",{}],
38+
"^.+.jsx?$": "babel-jest",
3939
},
4040
};"
4141
`;
@@ -81,15 +81,11 @@ exports[`config init should update package.json for config type js-with-babel-fu
8181
"version": "0.0.0-mock.0",
8282
"jest": {
8383
"transform": {
84-
"^.+.jsx?$": [
85-
"babel-jest",
86-
{}
87-
],
84+
"^.+.jsx?$": "babel-jest",
8885
"^.+.tsx?$": [
8986
"ts-jest",
9087
{
91-
"tsconfig": "tsconfig.test.json",
92-
"babelConfig": true
88+
"tsconfig": "tsconfig.test.json"
9389
}
9490
]
9591
}

src/presets/__snapshots__/create-jest-preset.spec.ts.snap

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,13 @@ exports[`create-jest-preset CJS presets createJsWithTsPreset should return prese
3030
exports[`create-jest-preset CJS presets createWithBabelPreset should return preset config 1`] = `
3131
{
3232
"transform": {
33-
"^.+.jsx?$": [
34-
"babel-jest",
35-
{
36-
"babelrc": true,
37-
},
38-
],
33+
"^.+.jsx?$": "babel-jest",
3934
"^.+.tsx?$": [
4035
"ts-jest",
4136
{
42-
"babelConfig": true,
37+
"babelConfig": {
38+
"babelrc": true,
39+
},
4340
"tsconfig": "tsconfig.spec.json",
4441
},
4542
],
@@ -97,12 +94,7 @@ exports[`create-jest-preset ESM presets createWithBabelEsmPreset should return p
9794
".mts",
9895
],
9996
"transform": {
100-
"^.+\\.m?jsx?$": [
101-
"babel-jest",
102-
{
103-
"babelrc": true,
104-
},
105-
],
97+
"^.+\\.m?jsx?$": "babel-jest",
10698
"^.+\\.m?tsx?$": [
10799
"ts-jest",
108100
{

src/presets/create-jest-preset.ts

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import {
1111
ESM_JS_TRANSFORM_PATTERN,
1212
} from '../constants'
1313
import type {
14-
BabelConfig,
1514
DefaultPreset,
1615
JsWithBabelPreset,
1716
JsWithTsPreset,
@@ -78,18 +77,10 @@ export function createJsWithBabelPreset(
7877
): JsWithBabelPreset {
7978
logger.debug('creating JS with Babel CJS Jest preset')
8079

81-
const babelConfig = tsJestTransformOptions.babelConfig
82-
8380
return {
8481
transform: {
85-
[JS_TRANSFORM_PATTERN]: ['babel-jest', typeof babelConfig === 'object' ? babelConfig : {}],
86-
[TS_TRANSFORM_PATTERN]: [
87-
'ts-jest',
88-
{
89-
...tsJestTransformOptions,
90-
babelConfig: true,
91-
},
92-
],
82+
[JS_TRANSFORM_PATTERN]: 'babel-jest',
83+
[TS_TRANSFORM_PATTERN]: ['ts-jest', tsJestTransformOptions],
9384
},
9485
}
9586
}
@@ -141,24 +132,21 @@ export function createJsWithTsEsmPreset(tsJestTransformOptions: Omit<TsJestTrans
141132
export function createJsWithBabelEsmPreset(tsJestTransformOptions: Omit<TsJestTransformerOptions, 'useESM'> = {}): {
142133
extensionsToTreatAsEsm: string[]
143134
transform: {
144-
[ESM_JS_TRANSFORM_PATTERN]: ['babel-jest', babelConfig: BabelConfig]
135+
[ESM_JS_TRANSFORM_PATTERN]: 'babel-jest'
145136
[ESM_TS_TRANSFORM_PATTERN]: ['ts-jest', { useESM: true } & typeof tsJestTransformOptions]
146137
}
147138
} {
148139
logger.debug('creating JS with Babel ESM Jest preset')
149140

150-
const babelConfig = tsJestTransformOptions.babelConfig
151-
152141
return {
153142
extensionsToTreatAsEsm: [...JS_EXT_TO_TREAT_AS_ESM, ...TS_EXT_TO_TREAT_AS_ESM],
154143
transform: {
155-
[ESM_JS_TRANSFORM_PATTERN]: ['babel-jest', typeof babelConfig === 'object' ? babelConfig : {}],
144+
[ESM_JS_TRANSFORM_PATTERN]: 'babel-jest',
156145
[ESM_TS_TRANSFORM_PATTERN]: [
157146
'ts-jest',
158147
{
159148
...tsJestTransformOptions,
160149
useESM: true,
161-
babelConfig,
162150
},
163151
],
164152
},

src/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ export type JsWithTsPreset = {
250250
}
251251
export type JsWithBabelPreset = {
252252
transform: {
253-
[JS_TRANSFORM_PATTERN]: ['babel-jest', babelConfig: BabelConfig]
253+
[JS_TRANSFORM_PATTERN]: 'babel-jest'
254254
[TS_TRANSFORM_PATTERN]: ['ts-jest', Omit<TsJestTransformerOptions, 'useESM'>]
255255
}
256256
}

0 commit comments

Comments
 (0)