@ornikar/jest-config-react-native 3.3.2 → 4.0.1
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/CHANGELOG.md +43 -0
- package/jest-preset.js +12 -18
- package/package.json +4 -5
- package/snapshot-resolvers/createCustomPlatformResolver.js +21 -0
- package/snapshot-resolvers/resolver.android.js +5 -0
- package/snapshot-resolvers/resolver.ios.js +5 -0
- package/snapshot-resolvers/resolver.node.js +5 -0
- package/snapshot-resolvers/resolver.web.js +5 -0
- package/transformers/babel-transformer-node-modules.js +11 -0
- package/transformers/svg-transformer-inline.js +5 -0
- package/{svg-transformer.js → transformers/svg-transformer.js} +0 -0
- package/web/jest-preset.js +30 -0
- package/nativeSnapshotResolver.js +0 -19
- package/svg-transformer-inline.js +0 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,49 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [4.0.1](https://github.com/ornikar/shared-configs/compare/@ornikar/jest-config-react-native@4.0.0...@ornikar/jest-config-react-native@4.0.1) (2022-03-09)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **jest-config-react-native:** fix dot missing in resolver ([878c2ab](https://github.com/ornikar/shared-configs/commit/878c2ab47340945ad780122de9b631c7c6d9a98d))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [4.0.0](https://github.com/ornikar/shared-configs/compare/@ornikar/jest-config-react-native@3.4.0...@ornikar/jest-config-react-native@4.0.0) (2022-03-09)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* **jest-config-react-native:** custom platform resolvers ([23f4f0f](https://github.com/ornikar/shared-configs/commit/23f4f0f1c706a417c7773f96b486012b3676c8d8))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### BREAKING CHANGES
|
|
26
|
+
|
|
27
|
+
* **jest-config-react-native:** removed nativeSnapshotResolver.js
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
# [3.4.0](https://github.com/ornikar/shared-configs/compare/@ornikar/jest-config-react-native@3.3.2...@ornikar/jest-config-react-native@3.4.0) (2022-03-08)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
### Bug Fixes
|
|
37
|
+
|
|
38
|
+
* **jest-config-react-native:** fix to make it work with jest 27 ([cf25dcd](https://github.com/ornikar/shared-configs/commit/cf25dcdd784617c91563bf14057845f75b4e20ca))
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
### Features
|
|
42
|
+
|
|
43
|
+
* faster jest [no issue] ([#660](https://github.com/ornikar/shared-configs/issues/660)) ([866764e](https://github.com/ornikar/shared-configs/commit/866764e4e12d27fa5b6a12f9452b99808035c2d6))
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
6
49
|
## [3.3.2](https://github.com/ornikar/shared-configs/compare/@ornikar/jest-config-react-native@3.3.1...@ornikar/jest-config-react-native@3.3.2) (2022-02-04)
|
|
7
50
|
|
|
8
51
|
**Note:** Version bump only for package @ornikar/jest-config-react-native
|
package/jest-preset.js
CHANGED
|
@@ -1,24 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const
|
|
3
|
+
const baseOrnikarPreset = require('@ornikar/jest-config-react/jest-preset');
|
|
4
4
|
const expoPreset = require('jest-expo/jest-preset');
|
|
5
|
-
const mergeWith = require('lodash.mergewith');
|
|
6
|
-
|
|
7
|
-
function customizer(objValue, srcValue) {
|
|
8
|
-
if (Array.isArray(objValue)) {
|
|
9
|
-
// eslint-disable-next-line unicorn/prefer-spread
|
|
10
|
-
return objValue.concat(srcValue);
|
|
11
|
-
}
|
|
12
|
-
return undefined;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
const basePreset = mergeWith(expoPreset, jestPreset, customizer);
|
|
16
5
|
|
|
17
6
|
module.exports = {
|
|
18
|
-
...
|
|
19
|
-
|
|
7
|
+
...baseOrnikarPreset,
|
|
8
|
+
...expoPreset,
|
|
9
|
+
setupFiles: [...expoPreset.setupFiles, ...baseOrnikarPreset.setupFiles],
|
|
10
|
+
testMatch: baseOrnikarPreset.testMatch,
|
|
20
11
|
moduleNameMapper: {
|
|
21
|
-
...
|
|
12
|
+
...expoPreset.moduleNameMapper,
|
|
22
13
|
'^@storybook/addon-actions$': require.resolve('./__mocks__/@storybook/addon-actions.js'),
|
|
23
14
|
'@storybook/react-native$': require.resolve('./__mocks__/@storybook/react-native.jsx'),
|
|
24
15
|
'^@storybook/react-native$': require.resolve('./__mocks__/@storybook/react-native.jsx'),
|
|
@@ -26,15 +17,18 @@ module.exports = {
|
|
|
26
17
|
'^@storybook/react$': require.resolve('./__mocks__/@storybook/react-native.jsx'),
|
|
27
18
|
},
|
|
28
19
|
transform: {
|
|
20
|
+
// compilation of problematic node_modules has a simplier config
|
|
21
|
+
'node_modules.*\\.(js|jsx|ts|tsx)$': require.resolve('./transformers/babel-transformer-node-modules.js'),
|
|
22
|
+
|
|
29
23
|
// remove svg asset transformer from expo config, as we configure svg with custom metro transformer
|
|
30
24
|
...Object.fromEntries(
|
|
31
|
-
Object.entries(
|
|
25
|
+
Object.entries(expoPreset.transform).map(([key, value]) => {
|
|
32
26
|
if (key.includes('|svg|')) return [key.replace('|svg|', '|'), value];
|
|
33
27
|
return [key, value];
|
|
34
28
|
}),
|
|
35
29
|
),
|
|
36
30
|
// legacy support, use { ReactComponent } from .svg instead.
|
|
37
|
-
'\\.inline\\.svg$': '
|
|
38
|
-
'\\.svg$': '
|
|
31
|
+
'\\.inline\\.svg$': require.resolve('./transformers/svg-transformer-inline.js'),
|
|
32
|
+
'\\.svg$': require.resolve('./transformers/svg-transformer.js'),
|
|
39
33
|
},
|
|
40
34
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ornikar/jest-config-react-native",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.1",
|
|
4
4
|
"description": "✅⚛️📱 jest config for react-native",
|
|
5
5
|
"repository": "ornikar/shared-configs",
|
|
6
6
|
"main": "jest-preset.js",
|
|
@@ -19,9 +19,8 @@
|
|
|
19
19
|
"react-dom": "^17.0.0"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@ornikar/jest-config": "^
|
|
23
|
-
"jest-svg-transformer": "^1.0.0"
|
|
24
|
-
"lodash.mergewith": "4.6.2"
|
|
22
|
+
"@ornikar/jest-config-react": "^9.4.0",
|
|
23
|
+
"jest-svg-transformer": "^1.0.0"
|
|
25
24
|
},
|
|
26
25
|
"devDependencies": {
|
|
27
26
|
"@testing-library/react-hooks": "7.0.2",
|
|
@@ -29,5 +28,5 @@
|
|
|
29
28
|
"jest-expo": "44.0.1",
|
|
30
29
|
"react": "17.0.2"
|
|
31
30
|
},
|
|
32
|
-
"gitHead": "
|
|
31
|
+
"gitHead": "7c2f280359c9acabb06e82eec1def56d138e1339"
|
|
33
32
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const path = require('path');
|
|
4
|
+
|
|
5
|
+
module.exports = function createCustomPlatformResolver(platform) {
|
|
6
|
+
const extensionSuffix = `.${platform}`;
|
|
7
|
+
return {
|
|
8
|
+
resolveSnapshotPath: (testPath, snapshotExtension) =>
|
|
9
|
+
path.join(
|
|
10
|
+
path.join(path.dirname(testPath), '__snapshots__'),
|
|
11
|
+
path.basename(testPath) + snapshotExtension + extensionSuffix,
|
|
12
|
+
),
|
|
13
|
+
|
|
14
|
+
resolveTestPath: (snapshotPath, snapshotExtension) =>
|
|
15
|
+
path.normalize(
|
|
16
|
+
path.join(path.dirname(snapshotPath), '..', path.basename(snapshotPath, snapshotExtension + extensionSuffix)),
|
|
17
|
+
),
|
|
18
|
+
|
|
19
|
+
testPathForConsistencyCheck: path.posix.join('consistency_check', 'example.test.js'),
|
|
20
|
+
};
|
|
21
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
4
|
+
const babelJest = require('babel-jest');
|
|
5
|
+
|
|
6
|
+
module.exports = babelJest.createTransformer({
|
|
7
|
+
// should be identical to the config in @ornikar/webpack-configs/reactNativeWeb.js
|
|
8
|
+
presets: [['babel-preset-expo', { jsxRuntime: 'automatic' }]],
|
|
9
|
+
babelrc: false,
|
|
10
|
+
configFile: false,
|
|
11
|
+
});
|
|
File without changes
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const baseOrnikarPreset = require('@ornikar/jest-config-react/jest-preset');
|
|
4
|
+
const expoPreset = require('jest-expo/web/jest-preset');
|
|
5
|
+
|
|
6
|
+
module.exports = {
|
|
7
|
+
...baseOrnikarPreset,
|
|
8
|
+
...expoPreset,
|
|
9
|
+
snapshotResolver: require.resolve('../snapshot-resolvers/resolver.web.js'),
|
|
10
|
+
setupFiles: [...expoPreset.setupFiles, ...baseOrnikarPreset.setupFiles],
|
|
11
|
+
testMatch: [
|
|
12
|
+
...baseOrnikarPreset.testMatch,
|
|
13
|
+
baseOrnikarPreset.testMatch[0].replace('**/__tests__/**/*.', '**/stories.'),
|
|
14
|
+
baseOrnikarPreset.testMatch[0].replace('**/__tests__/**/*.', '**/*.stories.'),
|
|
15
|
+
],
|
|
16
|
+
moduleNameMapper: {
|
|
17
|
+
...baseOrnikarPreset.moduleNameMapper,
|
|
18
|
+
...expoPreset.moduleNameMapper,
|
|
19
|
+
},
|
|
20
|
+
transform: {
|
|
21
|
+
// compilation of problematic node_modules has a simplier config
|
|
22
|
+
'node_modules.*\\.(js|jsx|ts|tsx)$': require.resolve('../transformers/babel-transformer-node-modules.js'),
|
|
23
|
+
|
|
24
|
+
// legacy support, use { ReactComponent } from .svg instead.
|
|
25
|
+
'\\.inline\\.svg$': require.resolve('../transformers/svg-transformer-inline.js'),
|
|
26
|
+
'\\.svg$': require.resolve('../transformers/svg-transformer.js'),
|
|
27
|
+
|
|
28
|
+
...baseOrnikarPreset.transform,
|
|
29
|
+
},
|
|
30
|
+
};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const path = require('path');
|
|
4
|
-
|
|
5
|
-
module.exports = {
|
|
6
|
-
resolveSnapshotPath: (testPath, snapshotExtension) => {
|
|
7
|
-
const snapshotPath = `${path.dirname(testPath)}/__native_snapshots__/${path.basename(
|
|
8
|
-
testPath,
|
|
9
|
-
)}${snapshotExtension}`;
|
|
10
|
-
return snapshotPath;
|
|
11
|
-
},
|
|
12
|
-
|
|
13
|
-
resolveTestPath: (snapshotFilePath, snapshotExtension) => {
|
|
14
|
-
const testPath = snapshotFilePath.replace('/__native_snapshots__', '').slice(0, -snapshotExtension.length);
|
|
15
|
-
return testPath;
|
|
16
|
-
},
|
|
17
|
-
|
|
18
|
-
testPathForConsistencyCheck: 'src/shared/components/Button/Button.test.tsx',
|
|
19
|
-
};
|