Skip to content

Commit 514b536

Browse files
committed
Simplify Jest config
1 parent a89ed8b commit 514b536

File tree

4 files changed

+36
-61
lines changed

4 files changed

+36
-61
lines changed

jest-preset.js

+17-26
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,27 @@
1-
const { jest: lernaAliases } = require("lerna-alias");
2-
const { TEST_ENV } = process.env;
3-
4-
const moduleType = ["cjs", "umd"].includes(TEST_ENV) ? TEST_ENV : "modules";
5-
6-
const mapValues = (obj, mapper) => {
7-
const mapped = {};
8-
Object.keys(obj).forEach(key => {
9-
mapped[key] = mapper(obj[key]);
10-
});
11-
return mapped;
12-
};
13-
14-
const mapAliasPathToSourceEntry = path =>
15-
path.replace("/src/index", `/${moduleType}/index`);
16-
17-
const mapAliasPathToDistEntry = path =>
18-
path.replace(/\/([a-z-]+)\/src\/index/, (match, pkgName) =>
19-
match.replace("/src/index", `/${moduleType}/${pkgName}`)
20-
);
1+
function resolveName(packageName) {
2+
switch (process.env.TEST_ENV) {
3+
case "cjs":
4+
return `<rootDir>/../${packageName}/cjs/${packageName}.js`;
5+
case "umd":
6+
return `<rootDir>/../${packageName}/umd/${packageName}.js`;
7+
case "module":
8+
default:
9+
return `<rootDir>/../${packageName}/modules/index.js`;
10+
}
11+
}
2112

2213
module.exports = {
2314
testRunner: "jest-circus/runner",
2415
restoreMocks: true,
2516
globals: {
2617
__DEV__: true
2718
},
28-
moduleNameMapper: mapValues(
29-
lernaAliases(),
30-
moduleType === "modules"
31-
? mapAliasPathToSourceEntry
32-
: mapAliasPathToDistEntry
33-
),
19+
moduleNameMapper: {
20+
"^react-router$": resolveName("react-router"),
21+
"^react-router-config$": resolveName("react-router-config"),
22+
"^react-router-dom$": resolveName("react-router-dom"),
23+
"^react-router-native$": resolveName("react-router-native")
24+
},
3425
setupFiles: ["raf/polyfill"],
3526
testMatch: ["**/__tests__/**/*-test.js"],
3627
transform: {

package.json

-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
"jest": "^24.9.0",
2525
"jest-circus": "^24.9.0",
2626
"lerna": "^3.13.4",
27-
"lerna-alias": "3.0.3-0",
2827
"lerna-changelog": "^0.8.2",
2928
"metro-react-native-babel-preset": "^0.56.0",
3029
"prettier": "^1.14.3",

packages/react-router-native/jest.config.js

+19-20
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,36 @@
11
const preset = require("react-native/jest-preset");
2-
const { jest: lernaAliases } = require("lerna-alias");
32

4-
const mapValues = (obj, mapper) => {
3+
function mapValues(obj, mapper) {
54
const mapped = {};
5+
66
Object.keys(obj).forEach(key => {
77
mapped[key] = mapper(obj[key]);
88
});
9-
return mapped;
10-
};
119

12-
const omitBy = (obj, predicate) => {
13-
const mapped = {};
14-
Object.keys(obj).forEach(key => {
15-
if (predicate(obj[key], key)) {
16-
return;
17-
}
18-
mapped[key] = obj[key];
19-
});
2010
return mapped;
21-
};
11+
}
2212

23-
const monorepoAliases = lernaAliases();
24-
const transpilableAliases = omitBy(monorepoAliases, (_, key) =>
25-
key.includes("react-router-native")
26-
);
13+
function resolveName(packageName) {
14+
switch (process.env.TEST_ENV) {
15+
case "cjs":
16+
return `<rootDir>/../${packageName}/cjs/${packageName}.js`;
17+
case "umd":
18+
return `<rootDir>/../${packageName}/umd/${packageName}.js`;
19+
case "module":
20+
default:
21+
return `<rootDir>/../${packageName}/modules/index.js`;
22+
}
23+
}
2724

2825
module.exports = {
2926
...preset,
3027
testRunner: "jest-circus/runner",
3128
restoreMocks: true,
32-
moduleNameMapper: mapValues(transpilableAliases, path =>
33-
path.replace("/src/index", `/modules/index`)
34-
),
29+
moduleNameMapper: {
30+
"^react-router$": resolveName("react-router"),
31+
"^react-router-dom$": resolveName("react-router-dom"),
32+
"^react-router-config": resolveName("react-router-config")
33+
},
3534
transform: mapValues(preset.transform, transformer =>
3635
transformer === "babel-jest"
3736
? ["babel-jest", { rootMode: "upward" }]

yarn.lock

-14
Original file line numberDiff line numberDiff line change
@@ -4316,13 +4316,6 @@ get-caller-file@^2.0.1:
43164316
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
43174317
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
43184318

4319-
get-lerna-packages@^0.1.1:
4320-
version "0.1.1"
4321-
resolved "https://registry.npmjs.org/get-lerna-packages/-/get-lerna-packages-0.1.1.tgz#37aaaac36fd14f00082f17b1096dd6c69290cef9"
4322-
integrity sha512-venxkvga57gOUZoTmXZlJ0zHc8cmvsx7Y0GTMcoEK/7OCEK3PLpG5gVTbUUMJaLxbzK13AWQdKPf1LSkuEfWqA==
4323-
dependencies:
4324-
glob "^7.1.2"
4325-
43264319
get-pkg-repo@^1.0.0:
43274320
version "1.4.0"
43284321
resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz#c73b489c06d80cc5536c2c853f9e05232056972d"
@@ -5759,13 +5752,6 @@ left-pad@^1.3.0:
57595752
resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e"
57605753
integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==
57615754

5762-
5763-
version "3.0.3-0"
5764-
resolved "https://registry.npmjs.org/lerna-alias/-/lerna-alias-3.0.3-0.tgz#d681842deed66644ab9f38a7b365658cfe52dd43"
5765-
integrity sha512-IX0c2QH3v4rkgE+iG7Ro0FSEWKqqrMhvbGbB1txrnaJ8YbcrNbJ0IPpcJi+uiiPLV3olNX74EO08x9hGZ+J5ig==
5766-
dependencies:
5767-
get-lerna-packages "^0.1.1"
5768-
57695755
lerna-changelog@^0.8.2:
57705756
version "0.8.2"
57715757
resolved "https://registry.yarnpkg.com/lerna-changelog/-/lerna-changelog-0.8.2.tgz#05dc24add91741a4c198a79f82a1a4ac3fbb4754"

0 commit comments

Comments
 (0)