@modern-js/plugin-testing 2.4.1-beta.0 → 2.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. package/CHANGELOG.md +40 -6
  2. package/dist/{js/node → cjs}/base/config/index.js +7 -23
  3. package/dist/{js/node → cjs}/base/config/patches/assetsModule.js +4 -0
  4. package/dist/{js/node → cjs}/base/config/patches/index.js +6 -26
  5. package/dist/{js/node → cjs}/base/config/patches/transformer.js +4 -0
  6. package/dist/{js/node → cjs}/base/config/resolver.js +4 -0
  7. package/dist/{js/node → cjs}/base/config/testConfigOperator.js +1 -15
  8. package/dist/{js/node → cjs}/base/config/transformer/babelTransformer.js +4 -0
  9. package/dist/{js/node → cjs}/base/runJest.js +28 -48
  10. package/dist/{js/node → cjs}/base/utils.js +8 -15
  11. package/dist/{js/node → cjs}/cli/bff/app.js +6 -26
  12. package/dist/{js/node → cjs}/cli/bff/index.js +26 -49
  13. package/dist/{js/node → cjs}/cli/bff/mockAPI.js +9 -16
  14. package/dist/{js/node → cjs}/cli/bff/setup.js +10 -26
  15. package/dist/{js/node → cjs}/cli/bff/utils/index.js +5 -15
  16. package/dist/{js/node → cjs}/cli/index.js +13 -26
  17. package/dist/{js/node → cjs}/cli/test.js +8 -24
  18. package/dist/{js/node → cjs}/runtime-testing/app.js +8 -15
  19. package/dist/{js/node → cjs}/runtime-testing/base.js +4 -0
  20. package/dist/{js/node → cjs}/runtime-testing/customRender.js +5 -15
  21. package/dist/{js/node → cjs}/runtime-testing/reduck.js +7 -19
  22. package/dist/{js/node → cjs}/runtime-testing/request.js +4 -0
  23. package/dist/{js/node → cjs}/runtime-testing/resolvePlugins.js +3 -15
  24. package/dist/{js/treeshaking → esm}/cli/index.js +3 -0
  25. package/dist/esm-node/base/config/index.js +16 -0
  26. package/dist/esm-node/base/config/patches/index.js +14 -0
  27. package/dist/{js/modern → esm-node}/base/config/testConfigOperator.js +1 -17
  28. package/dist/esm-node/base/runJest.js +78 -0
  29. package/dist/{js/modern → esm-node}/base/utils.js +4 -17
  30. package/dist/esm-node/cli/bff/app.js +38 -0
  31. package/dist/{js/modern → esm-node}/cli/bff/index.js +22 -51
  32. package/dist/{js/modern → esm-node}/cli/bff/mockAPI.js +5 -18
  33. package/dist/esm-node/cli/bff/setup.js +46 -0
  34. package/dist/esm-node/cli/bff/utils/index.js +21 -0
  35. package/dist/{js/modern → esm-node}/cli/index.js +9 -26
  36. package/dist/{js/modern → esm-node}/cli/test.js +4 -24
  37. package/dist/esm-node/runtime-testing/app.js +35 -0
  38. package/dist/esm-node/runtime-testing/customRender.js +9 -0
  39. package/dist/{js/modern → esm-node}/runtime-testing/reduck.js +3 -21
  40. package/dist/esm-node/runtime-testing/resolvePlugins.js +19 -0
  41. package/package.json +25 -26
  42. package/dist/js/modern/base/config/index.js +0 -36
  43. package/dist/js/modern/base/config/patches/index.js +0 -34
  44. package/dist/js/modern/base/runJest.js +0 -102
  45. package/dist/js/modern/cli/bff/app.js +0 -58
  46. package/dist/js/modern/cli/bff/setup.js +0 -75
  47. package/dist/js/modern/cli/bff/utils/index.js +0 -37
  48. package/dist/js/modern/runtime-testing/app.js +0 -48
  49. package/dist/js/modern/runtime-testing/customRender.js +0 -25
  50. package/dist/js/modern/runtime-testing/resolvePlugins.js +0 -33
  51. /package/dist/{js/node → cjs}/base/config/patches/filemock.js +0 -0
  52. /package/dist/{js/node → cjs}/base/hook.js +0 -0
  53. /package/dist/{js/node → cjs}/base/index.js +0 -0
  54. /package/dist/{js/node → cjs}/base/types/index.js +0 -0
  55. /package/dist/{js/node → cjs}/cli/bff/constant.js +0 -0
  56. /package/dist/{js/node → cjs}/constant.js +0 -0
  57. /package/dist/{js/node → cjs}/index.js +0 -0
  58. /package/dist/{js/node → cjs}/runtime-testing/index.js +0 -0
  59. /package/dist/{js/treeshaking → esm}/base/config/index.js +0 -0
  60. /package/dist/{js/treeshaking → esm}/base/config/patches/assetsModule.js +0 -0
  61. /package/dist/{js/treeshaking → esm}/base/config/patches/filemock.js +0 -0
  62. /package/dist/{js/treeshaking → esm}/base/config/patches/index.js +0 -0
  63. /package/dist/{js/treeshaking → esm}/base/config/patches/transformer.js +0 -0
  64. /package/dist/{js/treeshaking → esm}/base/config/resolver.js +0 -0
  65. /package/dist/{js/treeshaking → esm}/base/config/testConfigOperator.js +0 -0
  66. /package/dist/{js/treeshaking → esm}/base/config/transformer/babelTransformer.js +0 -0
  67. /package/dist/{js/treeshaking → esm}/base/hook.js +0 -0
  68. /package/dist/{js/treeshaking → esm}/base/index.js +0 -0
  69. /package/dist/{js/treeshaking → esm}/base/runJest.js +0 -0
  70. /package/dist/{js/treeshaking → esm}/base/types/index.js +0 -0
  71. /package/dist/{js/treeshaking → esm}/base/utils.js +0 -0
  72. /package/dist/{js/treeshaking → esm}/cli/bff/app.js +0 -0
  73. /package/dist/{js/treeshaking → esm}/cli/bff/constant.js +0 -0
  74. /package/dist/{js/treeshaking → esm}/cli/bff/index.js +0 -0
  75. /package/dist/{js/treeshaking → esm}/cli/bff/mockAPI.js +0 -0
  76. /package/dist/{js/treeshaking → esm}/cli/bff/setup.js +0 -0
  77. /package/dist/{js/treeshaking → esm}/cli/bff/utils/index.js +0 -0
  78. /package/dist/{js/treeshaking → esm}/cli/test.js +0 -0
  79. /package/dist/{js/treeshaking → esm}/constant.js +0 -0
  80. /package/dist/{js/treeshaking → esm}/index.js +0 -0
  81. /package/dist/{js/treeshaking → esm}/runtime-testing/app.js +0 -0
  82. /package/dist/{js/treeshaking → esm}/runtime-testing/base.js +0 -0
  83. /package/dist/{js/treeshaking → esm}/runtime-testing/customRender.js +0 -0
  84. /package/dist/{js/treeshaking → esm}/runtime-testing/index.js +0 -0
  85. /package/dist/{js/treeshaking → esm}/runtime-testing/reduck.js +0 -0
  86. /package/dist/{js/treeshaking → esm}/runtime-testing/request.js +0 -0
  87. /package/dist/{js/treeshaking → esm}/runtime-testing/resolvePlugins.js +0 -0
  88. /package/dist/{js/modern → esm-node}/base/config/patches/assetsModule.js +0 -0
  89. /package/dist/{js/modern → esm-node}/base/config/patches/filemock.js +0 -0
  90. /package/dist/{js/modern → esm-node}/base/config/patches/transformer.js +0 -0
  91. /package/dist/{js/modern → esm-node}/base/config/resolver.js +0 -0
  92. /package/dist/{js/modern → esm-node}/base/config/transformer/babelTransformer.js +0 -0
  93. /package/dist/{js/modern → esm-node}/base/hook.js +0 -0
  94. /package/dist/{js/modern → esm-node}/base/index.js +0 -0
  95. /package/dist/{js/modern → esm-node}/base/types/index.js +0 -0
  96. /package/dist/{js/modern → esm-node}/cli/bff/constant.js +0 -0
  97. /package/dist/{js/modern → esm-node}/constant.js +0 -0
  98. /package/dist/{js/modern → esm-node}/index.js +0 -0
  99. /package/dist/{js/modern → esm-node}/runtime-testing/base.js +0 -0
  100. /package/dist/{js/modern → esm-node}/runtime-testing/index.js +0 -0
  101. /package/dist/{js/modern → esm-node}/runtime-testing/request.js +0 -0
@@ -13,29 +13,13 @@ var __copyProps = (to, from, except, desc) => {
13
13
  return to;
14
14
  };
15
15
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
16
+ // If the importer is in node compatibility mode or this is not an ESM
17
+ // file that has been converted to a CommonJS file using a Babel-
18
+ // compatible transform (i.e. "__esModule" has not been set), then set
19
+ // "default" to the CommonJS "module.exports" for node compatibility.
16
20
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
17
21
  mod
18
22
  ));
19
- var __async = (__this, __arguments, generator) => {
20
- return new Promise((resolve, reject) => {
21
- var fulfilled = (value) => {
22
- try {
23
- step(generator.next(value));
24
- } catch (e) {
25
- reject(e);
26
- }
27
- };
28
- var rejected = (value) => {
29
- try {
30
- step(generator.throw(value));
31
- } catch (e) {
32
- reject(e);
33
- }
34
- };
35
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
36
- step((generator = generator.apply(__this, __arguments)).next());
37
- });
38
- };
39
23
  var import_path = __toESM(require("path"));
40
24
  var import_bff_core = require("@modern-js/bff-core");
41
25
  var import_constant = require("./constant");
@@ -66,19 +50,19 @@ const setup = () => {
66
50
  {}
67
51
  );
68
52
  let app = null;
69
- beforeAll(() => __async(exports, null, function* () {
53
+ beforeAll(async () => {
70
54
  if (!app) {
71
- app = yield (0, import_app.createApp)(
55
+ app = await (0, import_app.createApp)(
72
56
  bff_info.appDir,
73
57
  bff_info.modernUserConfig,
74
58
  bff_info.plugins,
75
59
  bff_info.routes
76
60
  );
77
61
  }
78
- }));
79
- afterAll(() => __async(exports, null, function* () {
80
- yield (0, import_app.closeServer)();
81
- }));
62
+ });
63
+ afterAll(async () => {
64
+ await (0, import_app.closeServer)();
65
+ });
82
66
  (0, import_mockAPI.default)(apiInfosByFile);
83
67
  };
84
68
  setup();
@@ -2,22 +2,8 @@ var __create = Object.create;
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
5
  var __getProtoOf = Object.getPrototypeOf;
7
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
- var __spreadValues = (a, b) => {
11
- for (var prop in b || (b = {}))
12
- if (__hasOwnProp.call(b, prop))
13
- __defNormalProp(a, prop, b[prop]);
14
- if (__getOwnPropSymbols)
15
- for (var prop of __getOwnPropSymbols(b)) {
16
- if (__propIsEnum.call(b, prop))
17
- __defNormalProp(a, prop, b[prop]);
18
- }
19
- return a;
20
- };
21
7
  var __export = (target, all) => {
22
8
  for (var name in all)
23
9
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -31,6 +17,10 @@ var __copyProps = (to, from, except, desc) => {
31
17
  return to;
32
18
  };
33
19
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
34
24
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
35
25
  mod
36
26
  ));
@@ -46,7 +36,7 @@ const isBFFProject = (pwd) => {
46
36
  try {
47
37
  const packageJson = require(import_path.default.join(pwd, "./package.json"));
48
38
  const { dependencies, devDependencies } = packageJson;
49
- const isBFF = Object.keys(__spreadValues(__spreadValues({}, dependencies), devDependencies)).some(
39
+ const isBFF = Object.keys({ ...dependencies, ...devDependencies }).some(
50
40
  (dependency) => dependency.includes("plugin-bff")
51
41
  );
52
42
  const isMWA = Object.keys(devDependencies).some(
@@ -17,30 +17,14 @@ var __copyProps = (to, from, except, desc) => {
17
17
  return to;
18
18
  };
19
19
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
20
24
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
25
  mod
22
26
  ));
23
27
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
- var __async = (__this, __arguments, generator) => {
25
- return new Promise((resolve, reject) => {
26
- var fulfilled = (value) => {
27
- try {
28
- step(generator.next(value));
29
- } catch (e) {
30
- reject(e);
31
- }
32
- };
33
- var rejected = (value) => {
34
- try {
35
- step(generator.throw(value));
36
- } catch (e) {
37
- reject(e);
38
- }
39
- };
40
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
41
- step((generator = generator.apply(__this, __arguments)).next());
42
- });
43
- };
44
28
  var cli_exports = {};
45
29
  __export(cli_exports, {
46
30
  default: () => cli_default,
@@ -70,9 +54,9 @@ var cli_default = () => {
70
54
  let testingExportsUtils;
71
55
  return {
72
56
  commands: ({ program }) => {
73
- program.command("test").allowUnknownOption().usage("<regexForTestFiles> --[options]").action(() => __async(void 0, null, function* () {
74
- yield (0, import_test.default)(api);
75
- }));
57
+ program.command("test").allowUnknownOption().usage("<regexForTestFiles> --[options]").action(async () => {
58
+ await (0, import_test.default)(api);
59
+ });
76
60
  },
77
61
  validateSchema() {
78
62
  return import_utils.PLUGIN_SCHEMAS["@modern-js/plugin-testing"];
@@ -86,6 +70,8 @@ var cli_default = () => {
86
70
  return {
87
71
  source: {
88
72
  alias: {
73
+ // The module-tools alias configuration is different and more specific than app-tools.
74
+ // So for the time being, the @ alias is configured here.
89
75
  "@": import_path.default.join(appContext.appDirectory, "src"),
90
76
  "@modern-js/runtime/testing": testingExportsUtils.getPath()
91
77
  }
@@ -96,10 +82,10 @@ var cli_default = () => {
96
82
  const testingPath = import_path.default.resolve(__dirname, "../");
97
83
  testingExportsUtils.addExport(`export * from '${testingPath}'`);
98
84
  },
99
- jestConfig: (utils, next) => __async(void 0, null, function* () {
85
+ jestConfig: async (utils, next) => {
100
86
  const appContext = api.useAppContext();
101
87
  const userConfig = api.useResolvedConfigContext();
102
- const apiOnly = yield (0, import_utils.isApiOnly)(appContext.appDirectory);
88
+ const apiOnly = await (0, import_utils.isApiOnly)(appContext.appDirectory);
103
89
  if (apiOnly) {
104
90
  return next(utils);
105
91
  }
@@ -117,6 +103,7 @@ var cli_default = () => {
117
103
  testEnvironment: "jsdom",
118
104
  resolver: import_base.DEFAULT_RESOLVER_PATH,
119
105
  rootDir: appContext.appDirectory || process.cwd(),
106
+ // testMatch bug on windows, issue: https://github.com/facebook/jest/issues/7914
120
107
  testMatch: [
121
108
  `<rootDir>/src/**/*.test.[jt]s?(x)`,
122
109
  `<rootDir>/tests/**/*.test.[jt]s?(x)`
@@ -124,7 +111,7 @@ var cli_default = () => {
124
111
  });
125
112
  mergeUserJestConfig(utils);
126
113
  return next(utils);
127
- })
114
+ }
128
115
  };
129
116
  }
130
117
  };
@@ -17,30 +17,14 @@ var __copyProps = (to, from, except, desc) => {
17
17
  return to;
18
18
  };
19
19
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
20
24
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
25
  mod
22
26
  ));
23
27
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
- var __async = (__this, __arguments, generator) => {
25
- return new Promise((resolve, reject) => {
26
- var fulfilled = (value) => {
27
- try {
28
- step(generator.next(value));
29
- } catch (e) {
30
- reject(e);
31
- }
32
- };
33
- var rejected = (value) => {
34
- try {
35
- step(generator.throw(value));
36
- } catch (e) {
37
- reject(e);
38
- }
39
- };
40
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
41
- step((generator = generator.apply(__this, __arguments)).next());
42
- });
43
- };
44
28
  var test_exports = {};
45
29
  __export(test_exports, {
46
30
  default: () => test_default
@@ -49,7 +33,7 @@ module.exports = __toCommonJS(test_exports);
49
33
  var import_path = __toESM(require("path"));
50
34
  var import_babel_compiler = require("@modern-js/babel-compiler");
51
35
  var import_base = require("../base");
52
- const test = (api) => __async(void 0, null, function* () {
36
+ const test = async (api) => {
53
37
  var _a, _b;
54
38
  const userConfig = api.useResolvedConfigContext();
55
39
  const appContext = api.useAppContext();
@@ -63,7 +47,7 @@ const test = (api) => __async(void 0, null, function* () {
63
47
  appContext.internalDirectory,
64
48
  ".runtime-exports"
65
49
  );
66
- yield (0, import_babel_compiler.compiler)(
50
+ await (0, import_babel_compiler.compiler)(
67
51
  {
68
52
  sourceDir: runtimeExportsPath,
69
53
  rootDir: runtimeExportsPath,
@@ -81,8 +65,8 @@ const test = (api) => __async(void 0, null, function* () {
81
65
  ]
82
66
  }
83
67
  );
84
- yield (0, import_base.runTest)(api, userConfig.testing);
85
- });
68
+ await (0, import_base.runTest)(api, userConfig.testing);
69
+ };
86
70
  var test_default = test;
87
71
  // Annotate the CommonJS export names for ESM import in node:
88
72
  0 && (module.exports = {});
@@ -2,22 +2,8 @@ var __create = Object.create;
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
5
  var __getProtoOf = Object.getPrototypeOf;
7
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
- var __spreadValues = (a, b) => {
11
- for (var prop in b || (b = {}))
12
- if (__hasOwnProp.call(b, prop))
13
- __defNormalProp(a, prop, b[prop]);
14
- if (__getOwnPropSymbols)
15
- for (var prop of __getOwnPropSymbols(b)) {
16
- if (__propIsEnum.call(b, prop))
17
- __defNormalProp(a, prop, b[prop]);
18
- }
19
- return a;
20
- };
21
7
  var __export = (target, all) => {
22
8
  for (var name in all)
23
9
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -31,6 +17,10 @@ var __copyProps = (to, from, except, desc) => {
31
17
  return to;
32
18
  };
33
19
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
34
24
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
35
25
  mod
36
26
  ));
@@ -55,7 +45,10 @@ class ModernRuntime {
55
45
  const { entry, children } = props || {};
56
46
  let runtimeFeatures = (_a = this.options) == null ? void 0 : _a.runtime;
57
47
  if (entry) {
58
- runtimeFeatures = __spreadValues(__spreadValues({}, runtimeFeatures || {}), (_b = this.options.runtimeByEntries) == null ? void 0 : _b[entry]);
48
+ runtimeFeatures = {
49
+ ...runtimeFeatures || {},
50
+ ...(_b = this.options.runtimeByEntries) == null ? void 0 : _b[entry]
51
+ };
59
52
  }
60
53
  const Component = () => {
61
54
  if (!children) {
@@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => {
18
18
  };
19
19
  var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
20
20
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
21
25
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
26
  mod
23
27
  ));
@@ -2,22 +2,8 @@ var __create = Object.create;
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
5
  var __getProtoOf = Object.getPrototypeOf;
7
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
- var __spreadValues = (a, b) => {
11
- for (var prop in b || (b = {}))
12
- if (__hasOwnProp.call(b, prop))
13
- __defNormalProp(a, prop, b[prop]);
14
- if (__getOwnPropSymbols)
15
- for (var prop of __getOwnPropSymbols(b)) {
16
- if (__propIsEnum.call(b, prop))
17
- __defNormalProp(a, prop, b[prop]);
18
- }
19
- return a;
20
- };
21
7
  var __export = (target, all) => {
22
8
  for (var name in all)
23
9
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -31,6 +17,10 @@ var __copyProps = (to, from, except, desc) => {
31
17
  return to;
32
18
  };
33
19
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
34
24
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
35
25
  mod
36
26
  ));
@@ -44,7 +34,7 @@ var import_react = __toESM(require("react"));
44
34
  var import_react2 = require("@testing-library/react");
45
35
  var import_app = __toESM(require("./app"));
46
36
  const WrapModernProviders = (props) => import_react.default.createElement(import_app.default.createApp(props));
47
- const customRender = (ui, options) => (0, import_react2.render)(ui, __spreadValues({ wrapper: WrapModernProviders }, options));
37
+ const customRender = (ui, options) => (0, import_react2.render)(ui, { wrapper: WrapModernProviders, ...options });
48
38
  var customRender_default = customRender;
49
39
  // Annotate the CommonJS export names for ESM import in node:
50
40
  0 && (module.exports = {});
@@ -1,26 +1,9 @@
1
1
  var __create = Object.create;
2
2
  var __defProp = Object.defineProperty;
3
- var __defProps = Object.defineProperties;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
5
  var __getProtoOf = Object.getPrototypeOf;
9
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
10
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
- var __spreadValues = (a, b) => {
13
- for (var prop in b || (b = {}))
14
- if (__hasOwnProp.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- if (__getOwnPropSymbols)
17
- for (var prop of __getOwnPropSymbols(b)) {
18
- if (__propIsEnum.call(b, prop))
19
- __defNormalProp(a, prop, b[prop]);
20
- }
21
- return a;
22
- };
23
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
7
  var __export = (target, all) => {
25
8
  for (var name in all)
26
9
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -34,6 +17,10 @@ var __copyProps = (to, from, except, desc) => {
34
17
  return to;
35
18
  };
36
19
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
37
24
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
38
25
  mod
39
26
  ));
@@ -71,9 +58,10 @@ const createStore = (props) => {
71
58
  }
72
59
  return ((props == null ? void 0 : props.plugins) || []).concat(plugins);
73
60
  };
74
- const config = __spreadProps(__spreadValues({}, props || {}), {
61
+ const config = {
62
+ ...props || {},
75
63
  plugins: createStatePlugins()
76
- });
64
+ };
77
65
  return (0, import_store.createStore)(config);
78
66
  };
79
67
  // Annotate the CommonJS export names for ESM import in node:
@@ -17,6 +17,10 @@ var __copyProps = (to, from, except, desc) => {
17
17
  return to;
18
18
  };
19
19
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
20
24
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
25
  mod
22
26
  ));
@@ -1,21 +1,7 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
5
  var __export = (target, all) => {
20
6
  for (var name in all)
21
7
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -42,7 +28,9 @@ function resolvePlugins(features) {
42
28
  }
43
29
  Object.keys(features).forEach((feature) => {
44
30
  if (allowedFeatures.includes(feature)) {
45
- const curPluginRes = require(`@modern-js/runtime/plugins`)[feature](__spreadValues({}, features[feature]));
31
+ const curPluginRes = require("@modern-js/runtime/plugins")[feature]({
32
+ ...features[feature]
33
+ });
46
34
  plugins.push(curPluginRes);
47
35
  }
48
36
  });
@@ -189,6 +189,8 @@ var cli_default = function() {
189
189
  return {
190
190
  source: {
191
191
  alias: {
192
+ // The module-tools alias configuration is different and more specific than app-tools.
193
+ // So for the time being, the @ alias is configured here.
192
194
  "@": path.join(appContext.appDirectory, "src"),
193
195
  "@modern-js/runtime/testing": testingExportsUtils.getPath()
194
196
  }
@@ -231,6 +233,7 @@ var cli_default = function() {
231
233
  testEnvironment: "jsdom",
232
234
  resolver: DEFAULT_RESOLVER_PATH,
233
235
  rootDir: appContext.appDirectory || process.cwd(),
236
+ // testMatch bug on windows, issue: https://github.com/facebook/jest/issues/7914
234
237
  testMatch: [
235
238
  "<rootDir>/src/**/*.test.[jt]s?(x)",
236
239
  "<rootDir>/tests/**/*.test.[jt]s?(x)"
@@ -0,0 +1,16 @@
1
+ import { applyPatches } from "./patches";
2
+ import { TestConfigOperator } from "./testConfigOperator";
3
+ const getJestUtils = (testConfig) => {
4
+ const testOperator = new TestConfigOperator(testConfig);
5
+ return testOperator;
6
+ };
7
+ const patchConfig = async (testOperator) => {
8
+ await applyPatches(testOperator);
9
+ return testOperator.jestConfig;
10
+ };
11
+ const DEFAULT_RESOLVER_PATH = require.resolve("./resolver");
12
+ export {
13
+ DEFAULT_RESOLVER_PATH,
14
+ getJestUtils,
15
+ patchConfig
16
+ };
@@ -0,0 +1,14 @@
1
+ import { patchTransformer } from "./transformer";
2
+ import { patchAssetsModule } from "./assetsModule";
3
+ const _applyPatches = async (patches2, testOperator) => {
4
+ for (const patch of patches2) {
5
+ await patch(testOperator);
6
+ }
7
+ };
8
+ const patches = [patchTransformer, patchAssetsModule];
9
+ const applyPatches = async (testConfig) => {
10
+ await _applyPatches(patches, testConfig);
11
+ };
12
+ export {
13
+ applyPatches
14
+ };
@@ -1,19 +1,3 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
- var __hasOwnProp = Object.prototype.hasOwnProperty;
4
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
- var __spreadValues = (a, b) => {
7
- for (var prop in b || (b = {}))
8
- if (__hasOwnProp.call(b, prop))
9
- __defNormalProp(a, prop, b[prop]);
10
- if (__getOwnPropSymbols)
11
- for (var prop of __getOwnPropSymbols(b)) {
12
- if (__propIsEnum.call(b, prop))
13
- __defNormalProp(a, prop, b[prop]);
14
- }
15
- return a;
16
- };
17
1
  import { merge } from "@modern-js/utils/lodash";
18
2
  class TestConfigOperator {
19
3
  constructor(testConfig) {
@@ -51,7 +35,7 @@ class TestConfigOperator {
51
35
  return;
52
36
  }
53
37
  }
54
- this._jestConfig = __spreadValues(__spreadValues({}, this._jestConfig), sourceConfig);
38
+ this._jestConfig = { ...this._jestConfig, ...sourceConfig };
55
39
  }
56
40
  getFinalConfig() {
57
41
  const { userJestConfig } = this;
@@ -0,0 +1,78 @@
1
+ import yargs from "yargs/yargs";
2
+ import { runCLI } from "jest";
3
+ import { chalk } from "@modern-js/utils";
4
+ import { getJestUtils, patchConfig } from "./config";
5
+ import { debug } from "./utils";
6
+ const buildArgv = async (rawArgv, config) => {
7
+ const argv = await yargs(rawArgv).argv;
8
+ const result = {
9
+ $0: argv.$0,
10
+ _: argv._.slice(1)
11
+ };
12
+ Object.keys(argv).forEach((key) => {
13
+ if (key.includes("-") || key === "_") {
14
+ return;
15
+ }
16
+ result[key] = argv[key];
17
+ });
18
+ if (config) {
19
+ result.config = JSON.stringify(config);
20
+ }
21
+ return result;
22
+ };
23
+ const readResultsAndExit = (result, globalConfig) => {
24
+ const code = !result || result.success ? 0 : globalConfig.testFailureExitCode;
25
+ process.on("exit", () => {
26
+ if (typeof code === "number" && code !== 0) {
27
+ process.exitCode = code;
28
+ }
29
+ });
30
+ if (globalConfig.forceExit) {
31
+ if (!globalConfig.detectOpenHandles) {
32
+ console.warn(
33
+ `${chalk.bold(
34
+ "Force exiting Jest: "
35
+ )}Have you considered using \`--detectOpenHandles\` to detect async operations that kept running after all tests finished?`
36
+ );
37
+ }
38
+ process.exit(code);
39
+ } else if (!globalConfig.detectOpenHandles) {
40
+ setTimeout(() => {
41
+ console.warn(
42
+ chalk.yellow.bold(
43
+ "Jest did not exit one second after the test run has completed.\n\n"
44
+ ) + chalk.yellow(
45
+ "This usually means that there are asynchronous operations that weren't stopped in your tests. Consider running Jest with `--detectOpenHandles` to troubleshoot this issue."
46
+ )
47
+ );
48
+ }, 1e3).unref();
49
+ }
50
+ };
51
+ async function runJest(config, pwd = process.cwd()) {
52
+ try {
53
+ const argvConfig = await buildArgv(process.argv.slice(2), config);
54
+ const { results, globalConfig } = await runCLI(argvConfig, [pwd]);
55
+ readResultsAndExit(results, globalConfig);
56
+ } catch (e) {
57
+ console.error(chalk.red((e == null ? void 0 : e.stack) || e));
58
+ process.exit(1);
59
+ }
60
+ }
61
+ async function runTest(api, config, pwd = process.cwd()) {
62
+ process.env.NODE_ENV = "test";
63
+ const jestUtils = getJestUtils(config);
64
+ await patchConfig(jestUtils);
65
+ jestUtils.setJestUserConfig();
66
+ const hookRunners = api.useHookRunners();
67
+ const testConfigOperator = await hookRunners.jestConfig(jestUtils, {
68
+ onLast: (input) => input
69
+ });
70
+ const finalConfig = testConfigOperator.getFinalConfig();
71
+ debug("Jest config:", finalConfig);
72
+ await runJest(finalConfig, pwd);
73
+ await hookRunners.afterTest();
74
+ }
75
+ export {
76
+ runJest,
77
+ runTest
78
+ };
@@ -1,19 +1,3 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
- var __hasOwnProp = Object.prototype.hasOwnProperty;
4
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
- var __spreadValues = (a, b) => {
7
- for (var prop in b || (b = {}))
8
- if (__hasOwnProp.call(b, prop))
9
- __defNormalProp(a, prop, b[prop]);
10
- if (__getOwnPropSymbols)
11
- for (var prop of __getOwnPropSymbols(b)) {
12
- if (__propIsEnum.call(b, prop))
13
- __defNormalProp(a, prop, b[prop]);
14
- }
15
- return a;
16
- };
17
1
  import fs from "fs";
18
2
  import path from "path";
19
3
  import { createDebugger } from "@modern-js/utils";
@@ -42,7 +26,10 @@ const readCompilerOptions = (pwd = process.cwd(), filename = "tsconfig.json") =>
42
26
  tsConfig.extends
43
27
  );
44
28
  }
45
- return __spreadValues(__spreadValues({}, extendedCompilerOptions), tsConfig.compilerOptions);
29
+ return {
30
+ ...extendedCompilerOptions,
31
+ ...tsConfig.compilerOptions
32
+ };
46
33
  };
47
34
  const getModuleNameMapper = (alias) => Object.keys(alias).reduce((memo, cur) => {
48
35
  const aliasValue = Array.isArray(alias[cur]) ? alias[cur] : [alias[cur]];