UNPKG

2.12 kBJavaScriptView Raw
1process.env.BABEL_ENV = "test";
2process.env.NODE_ENV = "test";
3process.env.PUBLIC_URL = "";
4
5require("./config/env");
6
7const jest = require("jest");
8const { execSync } = require("child_process");
9const { isInGitRepository, isInMercurialRepository } = require("./utils/repository");
10const createJestConfig = require("./config/jest");
11const path = require("path");
12const resolve = require("resolve");
13const { appPath } = require("./config/paths");
14
15const cleanArgv = [];
16let argv = process.argv.slice(2);
17let env = "jsdom";
18let srcDirs = "src";
19let resolvedEnv;
20let next;
21
22function resolveJestDefaultEnvironment(name) {
23 const jestDir = path.dirname(
24 resolve.sync("jest", {
25 basedir: __dirname
26 })
27 );
28 const jestCLIDir = path.dirname(
29 resolve.sync("jest-cli", {
30 basedir: jestDir
31 })
32 );
33 const jestConfigDir = path.dirname(
34 resolve.sync("jest-config", {
35 basedir: jestCLIDir
36 })
37 );
38 return resolve.sync(name, {
39 basedir: jestConfigDir
40 });
41}
42
43process.on("unhandledRejection", err => {
44 throw err;
45});
46
47if (
48 !process.env.CI &&
49 argv.indexOf("--watchAll") === -1 &&
50 argv.indexOf("--watchAll=false") === -1
51) {
52 argv.push(isInGitRepository() || isInMercurialRepository() ? "--watch" : "--watchAll");
53}
54
55do {
56 next = argv.shift();
57 switch (true) {
58 case next === "--env":
59 env = argv.shift();
60 break;
61 case next.indexOf("--env=") === 0:
62 env = next.substring("--env=".length);
63 break;
64 case next === "--dirs":
65 srcDirs = argv.shift();
66 break;
67 case next.indexOf("--dirs=") === 0:
68 srcDirs = next.substring("--dirs=".length);
69 break;
70 default:
71 cleanArgv.push(next);
72 }
73} while (argv.length > 0);
74
75argv = cleanArgv;
76
77argv.push(
78 "--config",
79 JSON.stringify(
80 createJestConfig(relativePath => path.resolve(__dirname, relativePath), appPath, srcDirs)
81 )
82);
83
84try {
85 resolvedEnv =
86 resolveJestDefaultEnvironment(`jest-environment-${env}`) || resolveJestDefaultEnvironment(env);
87} catch (e) {
88 // ignore
89}
90
91const testEnvironment = resolvedEnv || env;
92
93argv.push("--env", testEnvironment);
94jest.run(argv);