@modern-js/plugin-testing 2.0.0-beta.2 → 2.0.0-beta.4

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.
Files changed (106) hide show
  1. package/CHANGELOG.md +145 -0
  2. package/dist/js/modern/base/config/index.js +29 -9
  3. package/dist/js/modern/base/config/patches/assetsModule.js +7 -7
  4. package/dist/js/modern/base/config/patches/filemock.js +4 -1
  5. package/dist/js/modern/base/config/patches/index.js +30 -7
  6. package/dist/js/modern/base/config/patches/transformer.js +13 -18
  7. package/dist/js/modern/base/config/resolver.js +11 -6
  8. package/dist/js/modern/base/config/testConfigOperator.js +29 -23
  9. package/dist/js/modern/base/config/transformer/babelTransformer.js +16 -8
  10. package/dist/js/modern/base/hook.js +10 -5
  11. package/dist/js/modern/base/index.js +14 -6
  12. package/dist/js/modern/base/runJest.js +73 -62
  13. package/dist/js/modern/base/utils.js +40 -23
  14. package/dist/js/modern/cli/bff/app.js +37 -12
  15. package/dist/js/modern/cli/bff/constant.js +4 -1
  16. package/dist/js/modern/cli/bff/index.js +95 -52
  17. package/dist/js/modern/cli/bff/mockAPI.js +79 -64
  18. package/dist/js/modern/cli/bff/setup.js +71 -34
  19. package/dist/js/modern/cli/bff/utils/index.js +31 -15
  20. package/dist/js/modern/cli/index.js +64 -30
  21. package/dist/js/modern/cli/test.js +53 -18
  22. package/dist/js/modern/constant.js +4 -1
  23. package/dist/js/modern/index.js +3 -3
  24. package/dist/js/modern/modern-app.env.d.js +0 -0
  25. package/dist/js/modern/runtime-testing/app.js +25 -14
  26. package/dist/js/modern/runtime-testing/base.js +7 -3
  27. package/dist/js/modern/runtime-testing/customRender.js +24 -10
  28. package/dist/js/modern/runtime-testing/index.js +1 -1
  29. package/dist/js/modern/runtime-testing/reduck.js +41 -19
  30. package/dist/js/modern/runtime-testing/request.js +4 -4
  31. package/dist/js/modern/runtime-testing/resolvePlugins.js +24 -8
  32. package/dist/js/node/base/config/index.js +56 -18
  33. package/dist/js/node/base/config/patches/assetsModule.js +30 -12
  34. package/dist/js/node/base/config/patches/filemock.js +22 -7
  35. package/dist/js/node/base/config/patches/index.js +50 -15
  36. package/dist/js/node/base/config/patches/transformer.js +38 -25
  37. package/dist/js/node/base/config/resolver.js +37 -10
  38. package/dist/js/node/base/config/testConfigOperator.js +49 -30
  39. package/dist/js/node/base/config/transformer/babelTransformer.js +40 -15
  40. package/dist/js/node/base/hook.js +28 -13
  41. package/dist/js/node/base/index.js +31 -63
  42. package/dist/js/node/base/runJest.js +99 -71
  43. package/dist/js/node/base/utils.js +66 -34
  44. package/dist/js/node/cli/bff/app.js +57 -22
  45. package/dist/js/node/cli/bff/constant.js +22 -7
  46. package/dist/js/node/cli/bff/index.js +121 -65
  47. package/dist/js/node/cli/bff/mockAPI.js +103 -71
  48. package/dist/js/node/cli/bff/setup.js +100 -38
  49. package/dist/js/node/cli/bff/utils/index.js +55 -22
  50. package/dist/js/node/cli/index.js +87 -46
  51. package/dist/js/node/cli/test.js +79 -27
  52. package/dist/js/node/constant.js +22 -7
  53. package/dist/js/node/index.js +19 -18
  54. package/dist/js/node/modern-app.env.d.js +0 -0
  55. package/dist/js/node/runtime-testing/app.js +53 -25
  56. package/dist/js/node/runtime-testing/base.js +30 -33
  57. package/dist/js/node/runtime-testing/customRender.js +49 -18
  58. package/dist/js/node/runtime-testing/index.js +18 -27
  59. package/dist/js/node/runtime-testing/reduck.js +67 -31
  60. package/dist/js/node/runtime-testing/request.js +32 -13
  61. package/dist/js/node/runtime-testing/resolvePlugins.js +41 -12
  62. package/dist/js/treeshaking/base/config/index.js +150 -31
  63. package/dist/js/treeshaking/base/config/patches/assetsModule.js +9 -11
  64. package/dist/js/treeshaking/base/config/patches/filemock.js +2 -1
  65. package/dist/js/treeshaking/base/config/patches/index.js +221 -64
  66. package/dist/js/treeshaking/base/config/patches/transformer.js +34 -37
  67. package/dist/js/treeshaking/base/config/resolver.js +24 -11
  68. package/dist/js/treeshaking/base/config/testConfigOperator.js +120 -69
  69. package/dist/js/treeshaking/base/config/transformer/babelTransformer.js +16 -10
  70. package/dist/js/treeshaking/base/hook.js +8 -7
  71. package/dist/js/treeshaking/base/index.js +7 -6
  72. package/dist/js/treeshaking/base/runJest.js +281 -164
  73. package/dist/js/treeshaking/base/types/index.js +1 -0
  74. package/dist/js/treeshaking/base/utils.js +72 -48
  75. package/dist/js/treeshaking/cli/bff/app.js +192 -68
  76. package/dist/js/treeshaking/cli/bff/constant.js +2 -1
  77. package/dist/js/treeshaking/cli/bff/index.js +291 -130
  78. package/dist/js/treeshaking/cli/bff/mockAPI.js +181 -91
  79. package/dist/js/treeshaking/cli/bff/setup.js +185 -59
  80. package/dist/js/treeshaking/cli/bff/utils/index.js +47 -21
  81. package/dist/js/treeshaking/cli/index.js +248 -108
  82. package/dist/js/treeshaking/cli/test.js +177 -44
  83. package/dist/js/treeshaking/constant.js +2 -1
  84. package/dist/js/treeshaking/index.js +3 -3
  85. package/dist/js/treeshaking/modern-app.env.d.js +1 -0
  86. package/dist/js/treeshaking/runtime-testing/app.js +85 -39
  87. package/dist/js/treeshaking/runtime-testing/base.js +4 -3
  88. package/dist/js/treeshaking/runtime-testing/customRender.js +38 -10
  89. package/dist/js/treeshaking/runtime-testing/index.js +1 -1
  90. package/dist/js/treeshaking/runtime-testing/reduck.js +85 -33
  91. package/dist/js/treeshaking/runtime-testing/request.js +49 -19
  92. package/dist/js/treeshaking/runtime-testing/resolvePlugins.js +45 -14
  93. package/dist/types/base/config/index.d.ts +1 -0
  94. package/dist/types/base/config/patches/assetsModule.d.ts +1 -0
  95. package/dist/types/base/config/patches/filemock.d.ts +1 -0
  96. package/dist/types/base/config/patches/transformer.d.ts +1 -0
  97. package/dist/types/base/config/resolver.d.ts +2 -1
  98. package/dist/types/base/config/testConfigOperator.d.ts +2 -0
  99. package/dist/types/base/runJest.d.ts +2 -0
  100. package/dist/types/base/utils.d.ts +1 -0
  101. package/dist/types/cli/bff/index.d.ts +2 -0
  102. package/dist/types/cli/bff/mockAPI.d.ts +1 -0
  103. package/dist/types/cli/index.d.ts +2 -0
  104. package/dist/types/runtime-testing/app.d.ts +3 -0
  105. package/dist/types/runtime-testing/customRender.d.ts +2 -0
  106. package/package.json +13 -13
@@ -1,38 +1,93 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
+ mod
22
+ ));
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+ var stdin_exports = {};
25
+ __export(stdin_exports, {
26
+ default: () => bff_default,
27
+ setJestConfigForBFF: () => setJestConfigForBFF
5
28
  });
6
- exports.setJestConfigForBFF = exports.default = void 0;
7
- var _path = _interopRequireDefault(require("path"));
8
- var _utils = require("@modern-js/utils");
9
- var _base = require("../../base");
10
- var _constant = require("./constant");
11
- var _utils2 = require("./utils");
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
14
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
16
- const setJestConfigForBFF = async ({
29
+ module.exports = __toCommonJS(stdin_exports);
30
+ var import_path = __toESM(require("path"));
31
+ var import_utils = require("@modern-js/utils");
32
+ var import_base = require("../../base");
33
+ var import_constant = require("./constant");
34
+ var import_utils2 = require("./utils");
35
+ var __defProp2 = Object.defineProperty;
36
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
37
+ var __hasOwnProp2 = Object.prototype.hasOwnProperty;
38
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
39
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
40
+ var __spreadValues = (a, b) => {
41
+ for (var prop in b || (b = {}))
42
+ if (__hasOwnProp2.call(b, prop))
43
+ __defNormalProp(a, prop, b[prop]);
44
+ if (__getOwnPropSymbols)
45
+ for (var prop of __getOwnPropSymbols(b)) {
46
+ if (__propIsEnum.call(b, prop))
47
+ __defNormalProp(a, prop, b[prop]);
48
+ }
49
+ return a;
50
+ };
51
+ var __async = (__this, __arguments, generator) => {
52
+ return new Promise((resolve, reject) => {
53
+ var fulfilled = (value) => {
54
+ try {
55
+ step(generator.next(value));
56
+ } catch (e) {
57
+ reject(e);
58
+ }
59
+ };
60
+ var rejected = (value) => {
61
+ try {
62
+ step(generator.throw(value));
63
+ } catch (e) {
64
+ reject(e);
65
+ }
66
+ };
67
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
68
+ step((generator = generator.apply(__this, __arguments)).next());
69
+ });
70
+ };
71
+ const setJestConfigForBFF = (_0) => __async(void 0, [_0], function* ({
17
72
  pwd,
18
73
  userConfig,
19
74
  plugins,
20
75
  routes,
21
76
  utils
22
- }) => {
23
- var _userConfig$source;
77
+ }) {
78
+ var _a;
24
79
  const bffConfig = {
25
- rootDir: _path.default.join(pwd, './api'),
80
+ rootDir: import_path.default.join(pwd, "./api"),
26
81
  setupFilesAfterEnv: [require.resolve("./setup")],
27
- testEnvironment: 'node',
82
+ testEnvironment: "node",
28
83
  testMatch: [`**/api/**/*.test.[jt]s`],
29
84
  globals: {
30
- 'ts-jest': {
85
+ "ts-jest": {
31
86
  diagnostics: {
32
87
  warnOnly: true
33
88
  }
34
89
  },
35
- [_constant.bff_info_key]: {
90
+ [import_constant.bff_info_key]: {
36
91
  appDir: pwd,
37
92
  modernUserConfig: userConfig,
38
93
  plugins,
@@ -40,25 +95,17 @@ const setJestConfigForBFF = async ({
40
95
  }
41
96
  }
42
97
  };
43
- const {
44
- jestConfig
45
- } = utils;
46
- const alias = (userConfig === null || userConfig === void 0 ? void 0 : (_userConfig$source = userConfig.source) === null || _userConfig$source === void 0 ? void 0 : _userConfig$source.alias) || {};
47
- const aliasMapper = (0, _base.getModuleNameMapper)(alias);
48
- const {
49
- moduleNameMapper
50
- } = jestConfig;
51
-
52
- // 服务端统一使用 ts-jest
98
+ const { jestConfig } = utils;
99
+ const alias = ((_a = userConfig == null ? void 0 : userConfig.source) == null ? void 0 : _a.alias) || {};
100
+ const aliasMapper = (0, import_base.getModuleNameMapper)(alias);
101
+ const { moduleNameMapper } = jestConfig;
53
102
  const transform = {
54
- '\\.[jt]sx?$': require.resolve('ts-jest')
103
+ "\\.[jt]sx?$": require.resolve("ts-jest")
55
104
  };
56
- const apiOnly = await (0, _utils.isApiOnly)(pwd);
57
- const mergedModuleNameMapper = _objectSpread(_objectSpread({}, moduleNameMapper), aliasMapper);
58
- const resolver = jestConfig.resolver || _base.DEFAULT_RESOLVER_PATH;
59
-
60
- // 这三个配置不能设置在 projects 中,需要设置在外层(https://github.com/facebook/jest/issues/9696)
61
- const configFields = ['coverage', 'collectCoverage', 'testTimeout'];
105
+ const apiOnly = yield (0, import_utils.isApiOnly)(pwd);
106
+ const mergedModuleNameMapper = __spreadValues(__spreadValues({}, moduleNameMapper), aliasMapper);
107
+ const resolver = jestConfig.resolver || import_base.DEFAULT_RESOLVER_PATH;
108
+ const configFields = ["coverage", "collectCoverage", "testTimeout"];
62
109
  const commonConfig = configFields.reduce((obj, field) => {
63
110
  if (jestConfig.hasOwnProperty(field)) {
64
111
  obj[field] = jestConfig[field];
@@ -66,41 +113,51 @@ const setJestConfigForBFF = async ({
66
113
  return obj;
67
114
  }, {});
68
115
  if (!apiOnly) {
69
- utils.setJestConfig({
70
- projects: [_objectSpread({}, jestConfig), _objectSpread({
71
- transform,
72
- moduleNameMapper: mergedModuleNameMapper,
73
- resolver
74
- }, bffConfig)]
75
- }, {
76
- force: true
77
- });
116
+ utils.setJestConfig(
117
+ {
118
+ projects: [
119
+ __spreadValues({}, jestConfig),
120
+ __spreadValues({
121
+ transform,
122
+ moduleNameMapper: mergedModuleNameMapper,
123
+ resolver
124
+ }, bffConfig)
125
+ ]
126
+ },
127
+ {
128
+ force: true
129
+ }
130
+ );
78
131
  } else {
79
- utils.setJestConfig({
80
- projects: [_objectSpread({
81
- transform,
82
- moduleNameMapper: mergedModuleNameMapper,
83
- resolver
84
- }, bffConfig)]
85
- }, {
86
- force: true
87
- });
132
+ utils.setJestConfig(
133
+ {
134
+ projects: [
135
+ __spreadValues({
136
+ transform,
137
+ moduleNameMapper: mergedModuleNameMapper,
138
+ resolver
139
+ }, bffConfig)
140
+ ]
141
+ },
142
+ {
143
+ force: true
144
+ }
145
+ );
88
146
  }
89
147
  utils.setJestConfig(commonConfig);
90
- };
91
- exports.setJestConfigForBFF = setJestConfigForBFF;
92
- var _default = () => ({
93
- name: '@modern-js/testing-plugin-bff',
148
+ });
149
+ var bff_default = () => ({
150
+ name: "@modern-js/testing-plugin-bff",
94
151
  setup(api) {
95
152
  return {
96
- jestConfig: async (utils, next) => {
153
+ jestConfig: (utils, next) => __async(this, null, function* () {
97
154
  const appContext = api.useAppContext();
98
155
  const pwd = appContext.appDirectory;
99
- if (!(0, _utils2.isBFFProject)(pwd)) {
156
+ if (!(0, import_utils2.isBFFProject)(pwd)) {
100
157
  return next(utils);
101
158
  }
102
159
  const userConfig = api.useResolvedConfigContext();
103
- await setJestConfigForBFF({
160
+ yield setJestConfigForBFF({
104
161
  pwd,
105
162
  userConfig,
106
163
  routes: appContext.serverRoutes,
@@ -108,8 +165,7 @@ var _default = () => ({
108
165
  utils
109
166
  });
110
167
  return next(utils);
111
- }
168
+ })
112
169
  };
113
170
  }
114
171
  });
115
- exports.default = _default;
@@ -1,17 +1,49 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
+ mod
22
+ ));
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+ var stdin_exports = {};
25
+ __export(stdin_exports, {
26
+ default: () => mockAPI_default
5
27
  });
6
- exports.default = void 0;
7
- var ptr = _interopRequireWildcard(require("path-to-regexp"));
8
- var mockAppModule = _interopRequireWildcard(require("./app"));
9
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
11
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
12
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
13
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
14
- // eslint-disable-next-line @typescript-eslint/naming-convention
28
+ module.exports = __toCommonJS(stdin_exports);
29
+ var ptr = __toESM(require("path-to-regexp"));
30
+ var mockAppModule = __toESM(require("./app"));
31
+ var __defProp2 = Object.defineProperty;
32
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
33
+ var __hasOwnProp2 = Object.prototype.hasOwnProperty;
34
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
35
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
36
+ var __spreadValues = (a, b) => {
37
+ for (var prop in b || (b = {}))
38
+ if (__hasOwnProp2.call(b, prop))
39
+ __defNormalProp(a, prop, b[prop]);
40
+ if (__getOwnPropSymbols)
41
+ for (var prop of __getOwnPropSymbols(b)) {
42
+ if (__propIsEnum.call(b, prop))
43
+ __defNormalProp(a, prop, b[prop]);
44
+ }
45
+ return a;
46
+ };
15
47
  const mock_replaceUrlWithParams = (url, paramValues, payload) => {
16
48
  const keys = [];
17
49
  ptr.pathToRegexp(url, keys);
@@ -21,82 +53,82 @@ const mock_replaceUrlWithParams = (url, paramValues, payload) => {
21
53
  }
22
54
  return cur;
23
55
  }, {});
24
- const getFinalPath = ptr.compile(url, {
25
- encode: encodeURIComponent
26
- });
27
- return getFinalPath(_objectSpread(_objectSpread({}, params), payload));
56
+ const getFinalPath = ptr.compile(url, { encode: encodeURIComponent });
57
+ return getFinalPath(__spreadValues(__spreadValues({}, params), payload));
28
58
  };
29
-
30
- // eslint-disable-next-line @typescript-eslint/naming-convention
31
- const mock_getParamsAndPayload = args => {
59
+ const mock_getParamsAndPayload = (args) => {
32
60
  if (args.length === 0) {
33
61
  return [[], {}];
34
62
  }
35
63
  const head = args[0];
36
- if (typeof head === 'object') {
64
+ if (typeof head === "object") {
37
65
  return [[], head];
38
66
  } else {
39
67
  const latest = args[args.length - 1];
40
- if (typeof latest === 'object') {
68
+ if (typeof latest === "object") {
41
69
  return [args.slice(0, args.length - 1), latest];
42
70
  } else {
43
71
  return [args, {}];
44
72
  }
45
73
  }
46
74
  };
47
- var _default = mockApiInfosByFile => {
75
+ var mockAPI_default = (mockApiInfosByFile) => {
48
76
  const files = Object.keys(mockApiInfosByFile);
49
- files.forEach(mockedFile => {
77
+ files.forEach((mockedFile) => {
50
78
  jest.mock(mockedFile, () => {
51
- const supertest = require('supertest');
52
- return mockApiInfosByFile[mockedFile].reduce((res, info) => {
53
- const module = {
54
- [info.name]: (...args) => {
55
- if (mockAppModule.isInHandler()) {
56
- return info.handler(...args);
57
- }
58
- const [params, payload] = mock_getParamsAndPayload(args);
59
- const {
60
- returnHttp
61
- } = module[info.name];
62
- const url = mock_replaceUrlWithParams(info.routePath, params, payload.params);
63
- const app = mockAppModule.getApp();
64
- let test = supertest(app)[info.httpMethod.toLowerCase()](url);
65
- if (payload.query) {
66
- test = test.query(payload.query);
67
- }
68
- if (payload.body) {
69
- test = test.send(payload.body);
70
- }
71
- if (payload.data) {
72
- test = test.send(payload.data);
73
- }
74
- if (payload.headers) {
75
- for (const name in payload.headers) {
76
- test = test.set(name, payload.headers[name]);
79
+ const supertest = require("supertest");
80
+ return mockApiInfosByFile[mockedFile].reduce(
81
+ (res, info) => {
82
+ const module2 = {
83
+ [info.name]: (...args) => {
84
+ if (mockAppModule.isInHandler()) {
85
+ return info.handler(...args);
77
86
  }
78
- }
79
- if (payload.cookies) {
80
- test = test.set('Cookie', [payload.cookies]);
81
- }
82
- if (returnHttp) {
83
- return test;
84
- }
85
- return test.then(value => {
86
- try {
87
- return JSON.parse(value.text);
88
- } catch (_unused) {
89
- return value.text;
87
+ const [params, payload] = mock_getParamsAndPayload(args);
88
+ const { returnHttp } = module2[info.name];
89
+ const url = mock_replaceUrlWithParams(
90
+ info.routePath,
91
+ params,
92
+ payload.params
93
+ );
94
+ const app = mockAppModule.getApp();
95
+ let test = supertest(app)[info.httpMethod.toLowerCase()](url);
96
+ if (payload.query) {
97
+ test = test.query(payload.query);
98
+ }
99
+ if (payload.body) {
100
+ test = test.send(payload.body);
101
+ }
102
+ if (payload.data) {
103
+ test = test.send(payload.data);
90
104
  }
91
- });
92
- }
93
- };
94
- res[info.name] = module[info.name];
95
- Object.assign(res[info.name], info.handler);
96
- res.__esModule = true;
97
- return res;
98
- }, {});
105
+ if (payload.headers) {
106
+ for (const name in payload.headers) {
107
+ test = test.set(name, payload.headers[name]);
108
+ }
109
+ }
110
+ if (payload.cookies) {
111
+ test = test.set("Cookie", [payload.cookies]);
112
+ }
113
+ if (returnHttp) {
114
+ return test;
115
+ }
116
+ return test.then((value) => {
117
+ try {
118
+ return JSON.parse(value.text);
119
+ } catch (e) {
120
+ return value.text;
121
+ }
122
+ });
123
+ }
124
+ };
125
+ res[info.name] = module2[info.name];
126
+ Object.assign(res[info.name], info.handler);
127
+ res.__esModule = true;
128
+ return res;
129
+ },
130
+ {}
131
+ );
99
132
  });
100
133
  });
101
134
  };
102
- exports.default = _default;
@@ -1,41 +1,103 @@
1
- "use strict";
2
-
3
- var _path = _interopRequireDefault(require("path"));
4
- var _bffCore = require("@modern-js/bff-core");
5
- var _constant = require("./constant");
6
- var _mockAPI = _interopRequireDefault(require("./mockAPI"));
7
- var _app = require("./app");
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
- let uped = false;
10
- const setup = () => {
11
- var _bff_info$modernUserC, _bff_info$modernUserC2;
12
- if (uped) {
13
- return;
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
16
  }
15
- uped = true;
16
- const bff_info = global[_constant.bff_info_key];
17
- const prefix = bff_info === null || bff_info === void 0 ? void 0 : (_bff_info$modernUserC = bff_info.modernUserConfig) === null || _bff_info$modernUserC === void 0 ? void 0 : (_bff_info$modernUserC2 = _bff_info$modernUserC.bff) === null || _bff_info$modernUserC2 === void 0 ? void 0 : _bff_info$modernUserC2.prefix;
18
- const apiRouter = new _bffCore.ApiRouter({
19
- apiDir: _path.default.join(bff_info.appDir, './api'),
20
- prefix
21
- });
22
- const apiInfos = apiRouter.getApiHandlers();
23
- const apiInfosByFile = apiInfos.reduce((res, apiInfo) => {
24
- if (!res[apiInfo.filename]) {
25
- res[apiInfo.filename] = [];
26
- }
27
- res[apiInfo.filename].push(apiInfo);
28
- return res;
29
- }, {});
30
- let app = null;
31
- beforeAll(async () => {
32
- if (!app) {
33
- app = await (0, _app.createApp)(bff_info.appDir, bff_info.modernUserConfig, bff_info.plugins, bff_info.routes);
34
- }
35
- });
36
- afterAll(async () => {
37
- await (0, _app.closeServer)();
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
+ mod
22
+ ));
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+ var stdin_exports = {};
25
+ __export(stdin_exports, {
26
+ default: () => stdin_default
27
+ });
28
+ module.exports = __toCommonJS(stdin_exports);
29
+ var import_path = __toESM(require("path"));
30
+ var import_bff_core = require("@modern-js/bff-core");
31
+ var import_constant = require("./constant");
32
+ var import_mockAPI = __toESM(require("./mockAPI"));
33
+ var import_app = require("./app");
34
+ var __getOwnPropNames2 = Object.getOwnPropertyNames;
35
+ var __commonJS = (cb, mod) => function __require() {
36
+ return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
37
+ };
38
+ var __async = (__this, __arguments, generator) => {
39
+ return new Promise((resolve, reject) => {
40
+ var fulfilled = (value) => {
41
+ try {
42
+ step(generator.next(value));
43
+ } catch (e) {
44
+ reject(e);
45
+ }
46
+ };
47
+ var rejected = (value) => {
48
+ try {
49
+ step(generator.throw(value));
50
+ } catch (e) {
51
+ reject(e);
52
+ }
53
+ };
54
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
55
+ step((generator = generator.apply(__this, __arguments)).next());
38
56
  });
39
- (0, _mockAPI.default)(apiInfosByFile);
40
57
  };
41
- setup();
58
+ var require_setup = __commonJS({
59
+ "src/cli/bff/setup.ts"(exports) {
60
+ let uped = false;
61
+ const setup = () => {
62
+ var _a, _b;
63
+ if (uped) {
64
+ return;
65
+ }
66
+ uped = true;
67
+ const bff_info = global[import_constant.bff_info_key];
68
+ const prefix = (_b = (_a = bff_info == null ? void 0 : bff_info.modernUserConfig) == null ? void 0 : _a.bff) == null ? void 0 : _b.prefix;
69
+ const apiRouter = new import_bff_core.ApiRouter({
70
+ apiDir: import_path.default.join(bff_info.appDir, "./api"),
71
+ prefix
72
+ });
73
+ const apiInfos = apiRouter.getApiHandlers();
74
+ const apiInfosByFile = apiInfos.reduce(
75
+ (res, apiInfo) => {
76
+ if (!res[apiInfo.filename]) {
77
+ res[apiInfo.filename] = [];
78
+ }
79
+ res[apiInfo.filename].push(apiInfo);
80
+ return res;
81
+ },
82
+ {}
83
+ );
84
+ let app = null;
85
+ beforeAll(() => __async(exports, null, function* () {
86
+ if (!app) {
87
+ app = yield (0, import_app.createApp)(
88
+ bff_info.appDir,
89
+ bff_info.modernUserConfig,
90
+ bff_info.plugins,
91
+ bff_info.routes
92
+ );
93
+ }
94
+ }));
95
+ afterAll(() => __async(exports, null, function* () {
96
+ yield (0, import_app.closeServer)();
97
+ }));
98
+ (0, import_mockAPI.default)(apiInfosByFile);
99
+ };
100
+ setup();
101
+ }
102
+ });
103
+ var stdin_default = require_setup();