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

Sign up to get free protection for your applications and to get access to all the features.
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();