jest-expo 58.0.7 → 58.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/getPlatformPreset.js +6 -10
- package/jest-preset.js +11 -0
- package/package.json +3 -3
- package/src/resolveBabelOptions.js +1 -1
|
@@ -60,7 +60,7 @@ function getPlatformPreset(displayOptions, extensions, platform, { isServer, isR
|
|
|
60
60
|
...babelJestOptions,
|
|
61
61
|
caller: {
|
|
62
62
|
name: 'metro',
|
|
63
|
-
bundler: '
|
|
63
|
+
bundler: 'jest',
|
|
64
64
|
// Add support for the `platform` babel transforms and inlines such as
|
|
65
65
|
// Platform.OS and `process.env.EXPO_OS`.
|
|
66
66
|
platform,
|
|
@@ -96,19 +96,16 @@ function getPlatformPreset(displayOptions, extensions, platform, { isServer, isR
|
|
|
96
96
|
preset.testEnvironmentOptions ??= {};
|
|
97
97
|
if (!preset.testEnvironmentOptions.customExportConditions) {
|
|
98
98
|
preset.testEnvironmentOptions.customExportConditions = isServer
|
|
99
|
-
? ['node', 'require'
|
|
99
|
+
? ['node', 'require']
|
|
100
100
|
: platform === 'web'
|
|
101
|
-
? ['browser'
|
|
102
|
-
: ['react-native'
|
|
103
|
-
} else if (!preset.testEnvironmentOptions.customExportConditions.includes('expo-source')) {
|
|
104
|
-
preset.testEnvironmentOptions.customExportConditions.push('expo-source');
|
|
101
|
+
? ['browser']
|
|
102
|
+
: ['react-native'];
|
|
105
103
|
}
|
|
106
104
|
preset.moduleNameMapper = {
|
|
107
|
-
// Source exports can contain TypeScript files that use explicit `.js`
|
|
108
|
-
// extensions for runtime ESM compatibility.
|
|
109
|
-
'^(\\.{1,2}/.*)\\.js$': '$1',
|
|
110
105
|
// See the note in `../jest-preset.js`: mapped targets must be absolute paths on Jest 30.
|
|
111
106
|
'^react-native/asset-registry$': expoPreset.moduleNameMapper['^react-native/asset-registry$'],
|
|
107
|
+
'^react-native/unstable-internals-do-not-use$':
|
|
108
|
+
expoPreset.moduleNameMapper['^react-native/unstable-internals-do-not-use$'],
|
|
112
109
|
...preset.moduleNameMapper,
|
|
113
110
|
};
|
|
114
111
|
|
|
@@ -132,7 +129,6 @@ function getPlatformPreset(displayOptions, extensions, platform, { isServer, isR
|
|
|
132
129
|
'node',
|
|
133
130
|
'require',
|
|
134
131
|
'react-server',
|
|
135
|
-
'expo-source',
|
|
136
132
|
'workerd',
|
|
137
133
|
];
|
|
138
134
|
}
|
package/jest-preset.js
CHANGED
|
@@ -40,10 +40,21 @@ const reactNativeAssetRegistry = path.join(
|
|
|
40
40
|
path.dirname(require.resolve('react-native/package.json')),
|
|
41
41
|
'src/asset-registry.js'
|
|
42
42
|
);
|
|
43
|
+
// Resolve from the upstream preset so the entry point's relative requires load the same
|
|
44
|
+
// `react-native` copy its mocks are registered against.
|
|
45
|
+
const reactNativeUnstableInternals = path.join(
|
|
46
|
+
path.dirname(
|
|
47
|
+
require.resolve('react-native/package.json', {
|
|
48
|
+
paths: [path.dirname(require.resolve('@react-native/jest-preset/package.json'))],
|
|
49
|
+
})
|
|
50
|
+
),
|
|
51
|
+
'src/unstable-internals-do-not-use.js'
|
|
52
|
+
);
|
|
43
53
|
|
|
44
54
|
// Emulate the alias behavior of Expo's Metro resolver.
|
|
45
55
|
jestPreset.moduleNameMapper = {
|
|
46
56
|
'^react-native/asset-registry$': reactNativeAssetRegistry,
|
|
57
|
+
'^react-native/unstable-internals-do-not-use$': reactNativeUnstableInternals,
|
|
47
58
|
...(jestPreset.moduleNameMapper || {}),
|
|
48
59
|
'^react-native-vector-icons$': '@expo/vector-icons',
|
|
49
60
|
'^react-native-vector-icons/(.*)': '@expo/vector-icons/$1',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jest-expo",
|
|
3
|
-
"version": "58.0.
|
|
3
|
+
"version": "58.0.9",
|
|
4
4
|
"description": "A Jest preset to painlessly test your Expo / React Native apps.",
|
|
5
5
|
"homepage": "https://github.com/expo/expo/tree/main/packages/jest-expo",
|
|
6
6
|
"bugs": {
|
|
@@ -46,13 +46,13 @@
|
|
|
46
46
|
"test-renderer": "1.3.0"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@react-native/jest-preset": "0.88.0-rc.
|
|
49
|
+
"@react-native/jest-preset": "0.88.0-rc.4",
|
|
50
50
|
"@types/node": "^22.14.0",
|
|
51
51
|
"@types/react": "~19.3.0",
|
|
52
52
|
"react-server-dom-webpack": "~19.0.8"
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
|
-
"@react-native/jest-preset": "^0.88.0-rc.
|
|
55
|
+
"@react-native/jest-preset": "^0.88.0-rc.4",
|
|
56
56
|
"expo": "*",
|
|
57
57
|
"jest": "^30.0.0",
|
|
58
58
|
"react-native": "*",
|
|
@@ -78,7 +78,7 @@ function resolveBabelOptions(projectRoot = process.cwd()) {
|
|
|
78
78
|
configFile: true,
|
|
79
79
|
extends: babelConfigOpts.exts,
|
|
80
80
|
presets: babelConfigOpts.presets,
|
|
81
|
-
caller: { name: 'metro', bundler: '
|
|
81
|
+
caller: { name: 'metro', bundler: 'jest', platform: 'ios' },
|
|
82
82
|
};
|
|
83
83
|
}
|
|
84
84
|
|