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

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 (83) hide show
  1. package/CHANGELOG.md +109 -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 +10 -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 +1 -117
  73. package/dist/types/base/hook.d.ts +4 -6
  74. package/dist/types/base/runJest.d.ts +7 -3
  75. package/dist/types/base/utils.d.ts +0 -1
  76. package/dist/types/cli/bff/index.d.ts +7 -3
  77. package/dist/types/cli/bff/mockAPI.d.ts +0 -1
  78. package/dist/types/cli/index.d.ts +7 -3
  79. package/dist/types/cli/test.d.ts +7 -1
  80. package/dist/types/runtime-testing/app.d.ts +12 -5
  81. package/dist/types/runtime-testing/customRender.d.ts +0 -2
  82. package/dist/types/runtime-testing/resolvePlugins.d.ts +5 -1
  83. package/package.json +18 -18
@@ -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;