@modern-js/plugin-testing 2.0.0-beta.0 → 2.0.0-beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/dist/js/modern/base/config/index.js +1 -3
  3. package/dist/js/modern/base/config/patches/index.js +0 -2
  4. package/dist/js/modern/base/config/patches/transformer.js +1 -7
  5. package/dist/js/modern/base/config/resolver.js +0 -3
  6. package/dist/js/modern/base/config/testConfigOperator.js +0 -23
  7. package/dist/js/modern/base/config/transformer/babelTransformer.js +0 -1
  8. package/dist/js/modern/base/runJest.js +11 -14
  9. package/dist/js/modern/base/utils.js +2 -12
  10. package/dist/js/modern/cli/bff/app.js +0 -7
  11. package/dist/js/modern/cli/bff/index.js +4 -15
  12. package/dist/js/modern/cli/bff/mockAPI.js +4 -20
  13. package/dist/js/modern/cli/bff/setup.js +0 -5
  14. package/dist/js/modern/cli/bff/utils/index.js +0 -4
  15. package/dist/js/modern/cli/index.js +2 -9
  16. package/dist/js/modern/cli/test.js +0 -4
  17. package/dist/js/modern/runtime-testing/app.js +0 -15
  18. package/dist/js/modern/runtime-testing/customRender.js +0 -6
  19. package/dist/js/modern/runtime-testing/reduck.js +0 -10
  20. package/dist/js/modern/runtime-testing/request.js +1 -4
  21. package/dist/js/modern/runtime-testing/resolvePlugins.js +0 -6
  22. package/dist/js/node/base/config/index.js +0 -8
  23. package/dist/js/node/base/config/patches/assetsModule.js +0 -2
  24. package/dist/js/node/base/config/patches/index.js +0 -6
  25. package/dist/js/node/base/config/patches/transformer.js +1 -9
  26. package/dist/js/node/base/config/resolver.js +0 -5
  27. package/dist/js/node/base/config/testConfigOperator.js +0 -24
  28. package/dist/js/node/base/config/transformer/babelTransformer.js +0 -4
  29. package/dist/js/node/base/hook.js +0 -2
  30. package/dist/js/node/base/index.js +0 -7
  31. package/dist/js/node/base/runJest.js +11 -21
  32. package/dist/js/node/base/utils.js +2 -22
  33. package/dist/js/node/cli/bff/app.js +0 -14
  34. package/dist/js/node/cli/bff/index.js +4 -25
  35. package/dist/js/node/cli/bff/mockAPI.js +2 -25
  36. package/dist/js/node/cli/bff/setup.js +0 -11
  37. package/dist/js/node/cli/bff/utils/index.js +0 -9
  38. package/dist/js/node/cli/index.js +2 -21
  39. package/dist/js/node/cli/test.js +0 -10
  40. package/dist/js/node/index.js +0 -4
  41. package/dist/js/node/runtime-testing/app.js +0 -20
  42. package/dist/js/node/runtime-testing/base.js +0 -5
  43. package/dist/js/node/runtime-testing/customRender.js +0 -10
  44. package/dist/js/node/runtime-testing/index.js +0 -4
  45. package/dist/js/node/runtime-testing/reduck.js +0 -24
  46. package/dist/js/node/runtime-testing/request.js +1 -6
  47. package/dist/js/node/runtime-testing/resolvePlugins.js +0 -8
  48. package/dist/js/treeshaking/base/config/index.js +1 -6
  49. package/dist/js/treeshaking/base/config/patches/index.js +0 -17
  50. package/dist/js/treeshaking/base/config/patches/transformer.js +1 -7
  51. package/dist/js/treeshaking/base/config/resolver.js +0 -3
  52. package/dist/js/treeshaking/base/config/testConfigOperator.js +0 -15
  53. package/dist/js/treeshaking/base/config/transformer/babelTransformer.js +0 -1
  54. package/dist/js/treeshaking/base/runJest.js +19 -38
  55. package/dist/js/treeshaking/base/utils.js +2 -10
  56. package/dist/js/treeshaking/cli/bff/app.js +0 -13
  57. package/dist/js/treeshaking/cli/bff/index.js +0 -16
  58. package/dist/js/treeshaking/cli/bff/mockAPI.js +8 -24
  59. package/dist/js/treeshaking/cli/bff/setup.js +0 -9
  60. package/dist/js/treeshaking/cli/bff/utils/index.js +1 -2
  61. package/dist/js/treeshaking/cli/index.js +2 -11
  62. package/dist/js/treeshaking/cli/test.js +0 -7
  63. package/dist/js/treeshaking/runtime-testing/app.js +2 -15
  64. package/dist/js/treeshaking/runtime-testing/customRender.js +0 -3
  65. package/dist/js/treeshaking/runtime-testing/reduck.js +0 -7
  66. package/dist/js/treeshaking/runtime-testing/request.js +2 -7
  67. package/dist/js/treeshaking/runtime-testing/resolvePlugins.js +0 -3
  68. package/dist/types/base/config/index.d.ts +0 -1
  69. package/dist/types/base/config/patches/assetsModule.d.ts +0 -1
  70. package/dist/types/base/config/patches/filemock.d.ts +0 -1
  71. package/dist/types/base/config/patches/transformer.d.ts +0 -1
  72. package/dist/types/base/config/testConfigOperator.d.ts +0 -2
  73. package/dist/types/base/runJest.d.ts +0 -2
  74. package/dist/types/base/utils.d.ts +0 -1
  75. package/dist/types/cli/bff/index.d.ts +0 -2
  76. package/dist/types/cli/bff/mockAPI.d.ts +0 -1
  77. package/dist/types/cli/index.d.ts +0 -2
  78. package/dist/types/runtime-testing/app.d.ts +0 -3
  79. package/dist/types/runtime-testing/customRender.d.ts +0 -2
  80. package/package.json +15 -15
@@ -4,24 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.readCompilerOptions = exports.getModuleNameMapper = exports.debug = void 0;
7
-
8
7
  var _fs = _interopRequireDefault(require("fs"));
9
-
10
8
  var _path = _interopRequireDefault(require("path"));
11
-
12
9
  var _utils = require("@modern-js/utils");
13
-
14
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
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; }
17
-
18
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; }
19
-
20
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; }
21
-
22
14
  const debug = (0, _utils.createDebugger)('test');
23
15
  exports.debug = debug;
24
-
25
16
  /**
26
17
  * Read `compilerOptions` in the current pwd's tsconfig.json file
27
18
  */
@@ -29,51 +20,40 @@ const readCompilerOptions = (pwd = process.cwd(), filename = 'tsconfig.json') =>
29
20
  let tsConfig = {};
30
21
  let extendedCompilerOptions = {};
31
22
  let tsconfigFile = '';
32
-
33
23
  try {
34
24
  const maybeTsconfigFile = _path.default.join(pwd, filename);
35
-
36
25
  if (_fs.default.existsSync(maybeTsconfigFile)) {
37
26
  tsconfigFile = maybeTsconfigFile;
38
27
  } else {
39
28
  tsconfigFile = require.resolve(filename);
40
29
  }
41
-
42
30
  ({
43
31
  config: tsConfig
44
32
  } = require('typescript').parseConfigFileTextToJson(tsconfigFile, _fs.default.readFileSync(tsconfigFile, 'utf8')));
45
33
  } catch (e) {
46
34
  return {};
47
35
  }
48
-
49
36
  if (tsConfig.extends) {
50
37
  extendedCompilerOptions = readCompilerOptions(_path.default.dirname(tsconfigFile), tsConfig.extends);
51
38
  }
52
-
53
39
  return _objectSpread(_objectSpread({}, extendedCompilerOptions), tsConfig.compilerOptions);
54
40
  };
55
-
56
41
  exports.readCompilerOptions = readCompilerOptions;
57
-
58
42
  const getModuleNameMapper = alias => Object.keys(alias).reduce((memo, cur) => {
59
43
  const aliasValue = Array.isArray(alias[cur]) ? alias[cur] : [alias[cur]];
60
- const isFile = aliasValue.some(s => s.endsWith('.js')); // It's special for if using @modern-js/runtime alias other module @modern-js/runtime/model would not work.
44
+ const isFile = aliasValue.some(s => s.endsWith('.js'));
61
45
 
46
+ // It's special for if using @modern-js/runtime alias other module @modern-js/runtime/model would not work.
62
47
  if (cur === '@modern-js/runtime$') {
63
48
  memo[`.+${cur}`] = aliasValue[0];
64
49
  return memo;
65
50
  }
66
-
67
51
  if (isFile) {
68
52
  memo[cur] = aliasValue[0];
69
53
  }
70
-
71
54
  const key = `^${cur}/(.*)$`;
72
-
73
55
  const value = _path.default.normalize(`${aliasValue}/$1`);
74
-
75
56
  memo[key] = value;
76
57
  return memo;
77
58
  }, {});
78
-
79
59
  exports.getModuleNameMapper = getModuleNameMapper;
@@ -4,18 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.isInHandler = exports.getApp = exports.createApp = exports.closeServer = void 0;
7
-
8
7
  var _async_hooks = require("async_hooks");
9
-
10
8
  var _prodServer = require("@modern-js/prod-server");
11
-
12
9
  const store = new _async_hooks.AsyncLocalStorage();
13
-
14
10
  const isInHandler = () => Boolean(store.getStore());
15
-
16
11
  exports.isInHandler = isInHandler;
17
12
  let server = null;
18
-
19
13
  const createApp = async (pwd, config, plugins, routes) => {
20
14
  if (!server) {
21
15
  config.output.path = './';
@@ -28,29 +22,21 @@ const createApp = async (pwd, config, plugins, routes) => {
28
22
  });
29
23
  await server.init();
30
24
  }
31
-
32
25
  const app = server.getRequestHandler();
33
26
  return app;
34
27
  };
35
-
36
28
  exports.createApp = createApp;
37
-
38
29
  const getApp = () => {
39
30
  if (!server) {
40
31
  throw new Error('please createApp first');
41
32
  }
42
-
43
33
  return server.getRequestHandler();
44
34
  };
45
-
46
35
  exports.getApp = getApp;
47
-
48
36
  const closeServer = async () => {
49
37
  if (!server) {
50
38
  throw new Error('please createApp first');
51
39
  }
52
-
53
40
  await server.close();
54
41
  };
55
-
56
42
  exports.closeServer = closeServer;
@@ -4,25 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.setJestConfigForBFF = exports.default = void 0;
7
-
8
7
  var _path = _interopRequireDefault(require("path"));
9
-
10
8
  var _utils = require("@modern-js/utils");
11
-
12
9
  var _base = require("../../base");
13
-
14
10
  var _constant = require("./constant");
15
-
16
11
  var _utils2 = require("./utils");
17
-
18
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
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; }
21
-
22
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; }
23
-
24
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; }
25
-
26
16
  const setJestConfigForBFF = async ({
27
17
  pwd,
28
18
  userConfig,
@@ -31,7 +21,6 @@ const setJestConfigForBFF = async ({
31
21
  utils
32
22
  }) => {
33
23
  var _userConfig$source;
34
-
35
24
  const bffConfig = {
36
25
  rootDir: _path.default.join(pwd, './api'),
37
26
  setupFilesAfterEnv: [require.resolve("./setup")],
@@ -58,26 +47,24 @@ const setJestConfigForBFF = async ({
58
47
  const aliasMapper = (0, _base.getModuleNameMapper)(alias);
59
48
  const {
60
49
  moduleNameMapper
61
- } = jestConfig; // 服务端统一使用 ts-jest
50
+ } = jestConfig;
62
51
 
52
+ // 服务端统一使用 ts-jest
63
53
  const transform = {
64
54
  '\\.[jt]sx?$': require.resolve('ts-jest')
65
55
  };
66
56
  const apiOnly = await (0, _utils.isApiOnly)(pwd);
67
-
68
57
  const mergedModuleNameMapper = _objectSpread(_objectSpread({}, moduleNameMapper), aliasMapper);
58
+ const resolver = jestConfig.resolver || _base.DEFAULT_RESOLVER_PATH;
69
59
 
70
- const resolver = jestConfig.resolver || _base.DEFAULT_RESOLVER_PATH; // 这三个配置不能设置在 projects 中,需要设置在外层(https://github.com/facebook/jest/issues/9696)
71
-
60
+ // 这三个配置不能设置在 projects 中,需要设置在外层(https://github.com/facebook/jest/issues/9696)
72
61
  const configFields = ['coverage', 'collectCoverage', 'testTimeout'];
73
62
  const commonConfig = configFields.reduce((obj, field) => {
74
63
  if (jestConfig.hasOwnProperty(field)) {
75
64
  obj[field] = jestConfig[field];
76
65
  }
77
-
78
66
  return obj;
79
67
  }, {});
80
-
81
68
  if (!apiOnly) {
82
69
  utils.setJestConfig({
83
70
  projects: [_objectSpread({}, jestConfig), _objectSpread({
@@ -99,25 +86,19 @@ const setJestConfigForBFF = async ({
99
86
  force: true
100
87
  });
101
88
  }
102
-
103
89
  utils.setJestConfig(commonConfig);
104
90
  };
105
-
106
91
  exports.setJestConfigForBFF = setJestConfigForBFF;
107
-
108
92
  var _default = () => ({
109
93
  name: '@modern-js/testing-plugin-bff',
110
-
111
94
  setup(api) {
112
95
  return {
113
96
  jestConfig: async (utils, next) => {
114
97
  const appContext = api.useAppContext();
115
98
  const pwd = appContext.appDirectory;
116
-
117
99
  if (!(0, _utils2.isBFFProject)(pwd)) {
118
100
  return next(utils);
119
101
  }
120
-
121
102
  const userConfig = api.useResolvedConfigContext();
122
103
  await setJestConfigForBFF({
123
104
  pwd,
@@ -130,7 +111,5 @@ var _default = () => ({
130
111
  }
131
112
  };
132
113
  }
133
-
134
114
  });
135
-
136
115
  exports.default = _default;
@@ -4,21 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var ptr = _interopRequireWildcard(require("path-to-regexp"));
9
-
10
8
  var mockAppModule = _interopRequireWildcard(require("./app"));
11
-
12
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); }
13
-
14
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; }
15
-
16
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; }
17
-
18
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; }
19
-
20
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; }
21
-
22
14
  // eslint-disable-next-line @typescript-eslint/naming-convention
23
15
  const mock_replaceUrlWithParams = (url, paramValues, payload) => {
24
16
  const keys = [];
@@ -27,28 +19,24 @@ const mock_replaceUrlWithParams = (url, paramValues, payload) => {
27
19
  if (paramValues[index]) {
28
20
  cur[key.name] = paramValues[index];
29
21
  }
30
-
31
22
  return cur;
32
23
  }, {});
33
24
  const getFinalPath = ptr.compile(url, {
34
25
  encode: encodeURIComponent
35
26
  });
36
27
  return getFinalPath(_objectSpread(_objectSpread({}, params), payload));
37
- }; // eslint-disable-next-line @typescript-eslint/naming-convention
38
-
28
+ };
39
29
 
30
+ // eslint-disable-next-line @typescript-eslint/naming-convention
40
31
  const mock_getParamsAndPayload = args => {
41
32
  if (args.length === 0) {
42
33
  return [[], {}];
43
34
  }
44
-
45
35
  const head = args[0];
46
-
47
36
  if (typeof head === 'object') {
48
37
  return [[], head];
49
38
  } else {
50
39
  const latest = args[args.length - 1];
51
-
52
40
  if (typeof latest === 'object') {
53
41
  return [args.slice(0, args.length - 1), latest];
54
42
  } else {
@@ -56,20 +44,17 @@ const mock_getParamsAndPayload = args => {
56
44
  }
57
45
  }
58
46
  };
59
-
60
47
  var _default = mockApiInfosByFile => {
61
48
  const files = Object.keys(mockApiInfosByFile);
62
49
  files.forEach(mockedFile => {
63
50
  jest.mock(mockedFile, () => {
64
51
  const supertest = require('supertest');
65
-
66
52
  return mockApiInfosByFile[mockedFile].reduce((res, info) => {
67
53
  const module = {
68
54
  [info.name]: (...args) => {
69
55
  if (mockAppModule.isInHandler()) {
70
56
  return info.handler(...args);
71
57
  }
72
-
73
58
  const [params, payload] = mock_getParamsAndPayload(args);
74
59
  const {
75
60
  returnHttp
@@ -77,33 +62,26 @@ var _default = mockApiInfosByFile => {
77
62
  const url = mock_replaceUrlWithParams(info.routePath, params, payload.params);
78
63
  const app = mockAppModule.getApp();
79
64
  let test = supertest(app)[info.httpMethod.toLowerCase()](url);
80
-
81
65
  if (payload.query) {
82
66
  test = test.query(payload.query);
83
67
  }
84
-
85
68
  if (payload.body) {
86
69
  test = test.send(payload.body);
87
70
  }
88
-
89
71
  if (payload.data) {
90
72
  test = test.send(payload.data);
91
73
  }
92
-
93
74
  if (payload.headers) {
94
75
  for (const name in payload.headers) {
95
76
  test = test.set(name, payload.headers[name]);
96
77
  }
97
78
  }
98
-
99
79
  if (payload.cookies) {
100
80
  test = test.set('Cookie', [payload.cookies]);
101
81
  }
102
-
103
82
  if (returnHttp) {
104
83
  return test;
105
84
  }
106
-
107
85
  return test.then(value => {
108
86
  try {
109
87
  return JSON.parse(value.text);
@@ -121,5 +99,4 @@ var _default = mockApiInfosByFile => {
121
99
  });
122
100
  });
123
101
  };
124
-
125
102
  exports.default = _default;
@@ -1,26 +1,17 @@
1
1
  "use strict";
2
2
 
3
3
  var _path = _interopRequireDefault(require("path"));
4
-
5
4
  var _bffCore = require("@modern-js/bff-core");
6
-
7
5
  var _constant = require("./constant");
8
-
9
6
  var _mockAPI = _interopRequireDefault(require("./mockAPI"));
10
-
11
7
  var _app = require("./app");
12
-
13
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
-
15
9
  let uped = false;
16
-
17
10
  const setup = () => {
18
11
  var _bff_info$modernUserC, _bff_info$modernUserC2;
19
-
20
12
  if (uped) {
21
13
  return;
22
14
  }
23
-
24
15
  uped = true;
25
16
  const bff_info = global[_constant.bff_info_key];
26
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;
@@ -33,7 +24,6 @@ const setup = () => {
33
24
  if (!res[apiInfo.filename]) {
34
25
  res[apiInfo.filename] = [];
35
26
  }
36
-
37
27
  res[apiInfo.filename].push(apiInfo);
38
28
  return res;
39
29
  }, {});
@@ -48,5 +38,4 @@ const setup = () => {
48
38
  });
49
39
  (0, _mockAPI.default)(apiInfosByFile);
50
40
  };
51
-
52
41
  setup();
@@ -4,23 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.isBFFProject = void 0;
7
-
8
7
  var _path = _interopRequireDefault(require("path"));
9
-
10
8
  var _utils = require("@modern-js/utils");
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
10
  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; }
15
-
16
11
  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; }
17
-
18
12
  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; }
19
-
20
13
  const isBFFProject = pwd => {
21
14
  try {
22
15
  const packageJson = require(_path.default.join(pwd, './package.json'));
23
-
24
16
  const {
25
17
  dependencies,
26
18
  devDependencies
@@ -34,5 +26,4 @@ const isBFFProject = pwd => {
34
26
  return false;
35
27
  }
36
28
  };
37
-
38
29
  exports.isBFFProject = isBFFProject;
@@ -4,31 +4,22 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.mergeUserJestConfig = exports.default = void 0;
7
-
8
7
  var _path = _interopRequireDefault(require("path"));
9
-
10
8
  var _utils = require("@modern-js/utils");
11
-
12
9
  var _base = require("../base");
13
-
14
10
  var _constant = require("../constant");
15
-
16
11
  var _bff = _interopRequireDefault(require("./bff"));
17
-
18
12
  var _test = _interopRequireDefault(require("./test"));
19
-
20
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
22
14
  const mergeUserJestConfig = testUtils => {
23
- const resolveJestConfig = testUtils.testConfig.jest; // resolveJestConfig 如果是函数类型,在所有测试插件 jestConfig 都执行后,再执行生成最终配置
15
+ const resolveJestConfig = testUtils.testConfig.jest;
24
16
 
17
+ // resolveJestConfig 如果是函数类型,在所有测试插件 jestConfig 都执行后,再执行生成最终配置
25
18
  if (resolveJestConfig && typeof resolveJestConfig !== 'function') {
26
19
  testUtils.mergeJestConfig(resolveJestConfig);
27
20
  }
28
21
  };
29
-
30
22
  exports.mergeUserJestConfig = mergeUserJestConfig;
31
-
32
23
  var _default = () => {
33
24
  const BffPlugin = (0, _bff.default)();
34
25
  return {
@@ -46,11 +37,9 @@ var _default = () => {
46
37
  await (0, _test.default)(api);
47
38
  });
48
39
  },
49
-
50
40
  validateSchema() {
51
41
  return _utils.PLUGIN_SCHEMAS['@modern-js/plugin-testing'];
52
42
  },
53
-
54
43
  config() {
55
44
  const appContext = api.useAppContext();
56
45
  testingExportsUtils = (0, _utils.createRuntimeExportsUtils)(appContext.internalDirectory, 'testing');
@@ -62,28 +51,21 @@ var _default = () => {
62
51
  }
63
52
  };
64
53
  },
65
-
66
54
  addRuntimeExports() {
67
55
  const testingPath = _path.default.resolve(__dirname, '../');
68
-
69
56
  testingExportsUtils.addExport(`export * from '${testingPath}'`);
70
57
  },
71
-
72
58
  jestConfig: async (utils, next) => {
73
59
  const appContext = api.useAppContext();
74
60
  const userConfig = api.useResolvedConfigContext();
75
61
  const apiOnly = await (0, _utils.isApiOnly)(appContext.appDirectory);
76
-
77
62
  if (apiOnly) {
78
63
  return next(utils);
79
64
  }
80
-
81
65
  const alias = (0, _utils.mergeAlias)(userConfig.source.alias);
82
-
83
66
  if (testingExportsUtils) {
84
67
  alias['@modern-js/runtime/testing'] = [testingExportsUtils.getPath()];
85
68
  }
86
-
87
69
  utils.mergeJestConfig({
88
70
  globals: {
89
71
  [_constant.MODERNJS_CONFIG_KEY]: userConfig
@@ -104,5 +86,4 @@ var _default = () => {
104
86
  }
105
87
  };
106
88
  };
107
-
108
89
  exports.default = _default;
@@ -4,29 +4,20 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _path = _interopRequireDefault(require("path"));
9
-
10
8
  var _babelCompiler = require("@modern-js/babel-compiler");
11
-
12
9
  var _base = require("../base");
13
-
14
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
11
  const test = async api => {
17
12
  const userConfig = api.useResolvedConfigContext();
18
13
  const appContext = api.useAppContext();
19
14
  userConfig.testing = userConfig.testing || {};
20
15
  const jest = userConfig.testing.jest || userConfig.tools.jest;
21
-
22
16
  if (Array.isArray(jest)) {
23
17
  userConfig.testing.jest = jest[0];
24
18
  }
25
-
26
19
  userConfig.testing.jest = userConfig.testing.jest || userConfig.tools.jest;
27
-
28
20
  const runtimeExportsPath = _path.default.join(appContext.internalDirectory, '.runtime-exports');
29
-
30
21
  await (0, _babelCompiler.compiler)({
31
22
  sourceDir: runtimeExportsPath,
32
23
  rootDir: runtimeExportsPath,
@@ -39,6 +30,5 @@ const test = async api => {
39
30
  });
40
31
  await (0, _base.runTest)(api, userConfig.testing);
41
32
  };
42
-
43
33
  var _default = test;
44
34
  exports.default = _default;
@@ -3,13 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
-
7
6
  require("@testing-library/jest-dom/extend-expect");
8
-
9
7
  require("@testing-library/jest-dom");
10
-
11
8
  var _runtimeTesting = require("./runtime-testing");
12
-
13
9
  Object.keys(_runtimeTesting).forEach(function (key) {
14
10
  if (key === "default" || key === "__esModule") return;
15
11
  if (key in exports && exports[key] === _runtimeTesting[key]) return;
@@ -4,62 +4,42 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _runtime = require("@modern-js/runtime");
9
-
10
8
  var _constant = require("../constant");
11
-
12
9
  var _resolvePlugins = _interopRequireDefault(require("./resolvePlugins"));
13
-
14
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
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; }
17
-
18
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; }
19
-
20
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; }
21
-
22
14
  class ModernRuntime {
23
15
  constructor(options) {
24
16
  _defineProperty(this, "options", void 0);
25
-
26
17
  this.options = options;
27
18
  }
28
-
29
19
  init(options) {
30
20
  this.options = options;
31
21
  }
32
-
33
22
  createApp(props) {
34
23
  var _this$options;
35
-
36
24
  const {
37
25
  entry,
38
26
  children
39
27
  } = props || {};
40
28
  let runtimeFeatures = (_this$options = this.options) === null || _this$options === void 0 ? void 0 : _this$options.runtime;
41
-
42
29
  if (entry) {
43
30
  var _this$options$runtime;
44
-
45
31
  runtimeFeatures = _objectSpread(_objectSpread({}, runtimeFeatures || {}), (_this$options$runtime = this.options.runtimeByEntries) === null || _this$options$runtime === void 0 ? void 0 : _this$options$runtime[entry]);
46
32
  }
47
-
48
33
  const Component = () => {
49
34
  if (!children) {
50
35
  return null;
51
36
  }
52
-
53
37
  return children;
54
38
  };
55
-
56
39
  return (0, _runtime.createApp)({
57
40
  plugins: (0, _resolvePlugins.default)(runtimeFeatures || {})
58
41
  })(Component);
59
42
  }
60
-
61
43
  }
62
-
63
44
  var _default = new ModernRuntime(global[_constant.MODERNJS_CONFIG_KEY] || {});
64
-
65
45
  exports.default = _default;
@@ -19,11 +19,8 @@ Object.defineProperty(exports, "testBff", {
19
19
  return _request.request;
20
20
  }
21
21
  });
22
-
23
22
  var _customRender = _interopRequireDefault(require("./customRender"));
24
-
25
23
  var _react = require("@testing-library/react");
26
-
27
24
  Object.keys(_react).forEach(function (key) {
28
25
  if (key === "default" || key === "__esModule") return;
29
26
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -35,7 +32,5 @@ Object.keys(_react).forEach(function (key) {
35
32
  }
36
33
  });
37
34
  });
38
-
39
35
  var _request = require("./request");
40
-
41
36
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -4,26 +4,16 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _react = _interopRequireDefault(require("react"));
9
-
10
8
  var _react2 = require("@testing-library/react");
11
-
12
9
  var _app = _interopRequireDefault(require("./app"));
13
-
14
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
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; }
17
-
18
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; }
19
-
20
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; }
21
-
22
14
  const WrapModernProviders = props => /*#__PURE__*/_react.default.createElement(_app.default.createApp(props));
23
-
24
15
  const customRender = (ui, options) => (0, _react2.render)(ui, _objectSpread({
25
16
  wrapper: WrapModernProviders
26
17
  }, options));
27
-
28
18
  var _default = customRender;
29
19
  exports.default = _default;
@@ -3,9 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
-
7
6
  var _base = require("./base");
8
-
9
7
  Object.keys(_base).forEach(function (key) {
10
8
  if (key === "default" || key === "__esModule") return;
11
9
  if (key in exports && exports[key] === _base[key]) return;
@@ -16,9 +14,7 @@ Object.keys(_base).forEach(function (key) {
16
14
  }
17
15
  });
18
16
  });
19
-
20
17
  var _reduck = require("./reduck");
21
-
22
18
  Object.keys(_reduck).forEach(function (key) {
23
19
  if (key === "default" || key === "__esModule") return;
24
20
  if (key in exports && exports[key] === _reduck[key]) return;