@modern-js/plugin-testing 1.5.6 → 1.6.0

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 (97) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/dist/js/modern/base/config/index.js +18 -0
  3. package/dist/js/modern/base/config/patches/assetsModule.js +11 -0
  4. package/dist/js/modern/base/config/patches/filemock.js +1 -0
  5. package/dist/js/modern/base/config/patches/index.js +13 -0
  6. package/dist/js/modern/base/config/patches/transformer.js +49 -0
  7. package/dist/js/modern/base/config/resolver.js +15 -0
  8. package/dist/js/modern/base/config/testConfigOperator.js +86 -0
  9. package/dist/js/modern/base/config/transformer/babelTransformer.js +12 -0
  10. package/dist/js/modern/base/hook.js +7 -0
  11. package/dist/js/modern/base/index.js +6 -0
  12. package/dist/js/modern/base/runJest.js +94 -0
  13. package/dist/js/modern/base/types/index.js +0 -0
  14. package/dist/js/modern/base/utils.js +59 -0
  15. package/dist/js/modern/cli/bff/app.js +22 -0
  16. package/dist/js/modern/cli/bff/constant.js +1 -0
  17. package/dist/js/modern/cli/bff/env.js +28 -0
  18. package/dist/js/modern/cli/bff/index.js +110 -0
  19. package/dist/js/modern/cli/bff/mockAPI.js +109 -0
  20. package/dist/js/modern/cli/bff/setup.js +33 -0
  21. package/dist/js/modern/cli/bff/utils/index.js +25 -0
  22. package/dist/js/modern/cli/index.js +2 -2
  23. package/dist/js/modern/cli/test.js +1 -1
  24. package/dist/js/modern/runtime-testing/base.js +1 -1
  25. package/dist/js/modern/runtime-testing/request.js +17 -0
  26. package/dist/js/node/base/config/index.js +31 -0
  27. package/dist/js/node/base/config/patches/assetsModule.js +20 -0
  28. package/dist/js/node/base/config/patches/filemock.js +8 -0
  29. package/dist/js/node/base/config/patches/index.js +24 -0
  30. package/dist/js/node/base/config/patches/transformer.js +58 -0
  31. package/dist/js/node/base/config/resolver.js +20 -0
  32. package/dist/js/node/base/config/testConfigOperator.js +93 -0
  33. package/dist/js/node/base/config/transformer/babelTransformer.js +23 -0
  34. package/dist/js/node/base/hook.js +18 -0
  35. package/dist/js/node/base/index.js +73 -0
  36. package/dist/js/node/base/runJest.js +109 -0
  37. package/dist/js/node/base/types/index.js +0 -0
  38. package/dist/js/node/base/utils.js +79 -0
  39. package/dist/js/node/cli/bff/app.js +34 -0
  40. package/dist/js/node/cli/bff/constant.js +8 -0
  41. package/dist/js/node/cli/bff/env.js +42 -0
  42. package/dist/js/node/cli/bff/index.js +129 -0
  43. package/dist/js/node/cli/bff/mockAPI.js +124 -0
  44. package/dist/js/node/cli/bff/setup.js +41 -0
  45. package/dist/js/node/cli/bff/utils/index.js +38 -0
  46. package/dist/js/node/cli/index.js +7 -7
  47. package/dist/js/node/cli/test.js +2 -2
  48. package/dist/js/node/runtime-testing/base.js +2 -2
  49. package/dist/js/node/runtime-testing/request.js +24 -0
  50. package/dist/js/treeshaking/base/config/index.js +40 -0
  51. package/dist/js/treeshaking/base/config/patches/assetsModule.js +11 -0
  52. package/dist/js/treeshaking/base/config/patches/filemock.js +1 -0
  53. package/dist/js/treeshaking/base/config/patches/index.js +85 -0
  54. package/dist/js/treeshaking/base/config/patches/transformer.js +45 -0
  55. package/dist/js/treeshaking/base/config/resolver.js +17 -0
  56. package/dist/js/treeshaking/base/config/testConfigOperator.js +91 -0
  57. package/dist/js/treeshaking/base/config/transformer/babelTransformer.js +12 -0
  58. package/dist/js/treeshaking/base/hook.js +7 -0
  59. package/dist/js/treeshaking/base/index.js +6 -0
  60. package/dist/js/treeshaking/base/runJest.js +194 -0
  61. package/dist/js/treeshaking/base/types/index.js +0 -0
  62. package/dist/js/treeshaking/base/utils.js +60 -0
  63. package/dist/js/treeshaking/cli/bff/app.js +47 -0
  64. package/dist/js/treeshaking/cli/bff/constant.js +1 -0
  65. package/dist/js/treeshaking/cli/bff/env.js +98 -0
  66. package/dist/js/treeshaking/cli/bff/index.js +145 -0
  67. package/dist/js/treeshaking/cli/bff/mockAPI.js +113 -0
  68. package/dist/js/treeshaking/cli/bff/setup.js +33 -0
  69. package/dist/js/treeshaking/cli/bff/utils/index.js +22 -0
  70. package/dist/js/treeshaking/cli/index.js +2 -2
  71. package/dist/js/treeshaking/cli/test.js +1 -1
  72. package/dist/js/treeshaking/runtime-testing/base.js +1 -1
  73. package/dist/js/treeshaking/runtime-testing/request.js +24 -0
  74. package/dist/types/base/config/index.d.ts +124 -0
  75. package/dist/types/base/config/patches/assetsModule.d.ts +6 -0
  76. package/dist/types/base/config/patches/filemock.d.ts +3 -0
  77. package/dist/types/base/config/patches/index.d.ts +2 -0
  78. package/dist/types/base/config/patches/transformer.d.ts +6 -0
  79. package/dist/types/base/config/resolver.d.ts +1 -0
  80. package/dist/types/base/config/testConfigOperator.d.ts +248 -0
  81. package/dist/types/base/config/transformer/babelTransformer.d.ts +2 -0
  82. package/dist/types/base/hook.d.ts +13 -0
  83. package/dist/types/base/index.d.ts +6 -0
  84. package/dist/types/base/runJest.d.ts +22 -0
  85. package/dist/types/base/types/index.d.ts +1 -0
  86. package/dist/types/base/utils.d.ts +12 -0
  87. package/dist/types/cli/bff/app.d.ts +6 -0
  88. package/dist/types/cli/bff/constant.d.ts +1 -0
  89. package/dist/types/cli/bff/env.d.ts +6 -0
  90. package/dist/types/cli/bff/index.d.ts +19 -0
  91. package/dist/types/cli/bff/mockAPI.d.ts +3 -0
  92. package/dist/types/cli/bff/setup.d.ts +1 -0
  93. package/dist/types/cli/bff/utils/index.d.ts +1 -0
  94. package/dist/types/cli/index.d.ts +1 -1
  95. package/dist/types/runtime-testing/base.d.ts +1 -1
  96. package/dist/types/runtime-testing/request.d.ts +4 -0
  97. package/package.json +23 -10
@@ -0,0 +1,98 @@
1
+ import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
2
+ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
4
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
5
+ import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
6
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
7
+ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
8
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
9
+ import NodeEnvironment from 'jest-environment-node';
10
+ import { createApp } from "./app";
11
+ import { bff_info_key } from "./constant";
12
+
13
+ var _default = /*#__PURE__*/function (_NodeEnvironment) {
14
+ _inherits(_default, _NodeEnvironment);
15
+
16
+ var _super = _createSuper(_default);
17
+
18
+ function _default() {
19
+ var _this;
20
+
21
+ _classCallCheck(this, _default);
22
+
23
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
24
+ args[_key] = arguments[_key];
25
+ }
26
+
27
+ _this = _super.call.apply(_super, [this].concat(args));
28
+
29
+ _defineProperty(_assertThisInitialized(_this), "app", void 0);
30
+
31
+ return _this;
32
+ }
33
+
34
+ _createClass(_default, [{
35
+ key: "setup",
36
+ value: function () {
37
+ var _setup = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
38
+ var bff_info, plugins;
39
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
40
+ while (1) {
41
+ switch (_context.prev = _context.next) {
42
+ case 0:
43
+ bff_info = this.global[bff_info_key];
44
+ plugins = bff_info.plugins; // eslint-disable-next-line no-multi-assign
45
+
46
+ _context.next = 4;
47
+ return createApp(bff_info.appDir, bff_info.modernUserConfig, plugins, bff_info.routes);
48
+
49
+ case 4:
50
+ this.global.app = this.app = _context.sent;
51
+
52
+ case 5:
53
+ case "end":
54
+ return _context.stop();
55
+ }
56
+ }
57
+ }, _callee, this);
58
+ }));
59
+
60
+ function setup() {
61
+ return _setup.apply(this, arguments);
62
+ }
63
+
64
+ return setup;
65
+ }()
66
+ }, {
67
+ key: "teardown",
68
+ value: function () {
69
+ var _teardown = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
70
+ var _this$app, _this$app$server;
71
+
72
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
73
+ while (1) {
74
+ switch (_context2.prev = _context2.next) {
75
+ case 0:
76
+ _context2.next = 2;
77
+ return (_this$app = this.app) === null || _this$app === void 0 ? void 0 : (_this$app$server = _this$app.server) === null || _this$app$server === void 0 ? void 0 : _this$app$server.close();
78
+
79
+ case 2:
80
+ case "end":
81
+ return _context2.stop();
82
+ }
83
+ }
84
+ }, _callee2, this);
85
+ }));
86
+
87
+ function teardown() {
88
+ return _teardown.apply(this, arguments);
89
+ }
90
+
91
+ return teardown;
92
+ }()
93
+ }]);
94
+
95
+ return _default;
96
+ }(NodeEnvironment);
97
+
98
+ export { _default as default };
@@ -0,0 +1,145 @@
1
+ import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
2
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
3
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
+ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
5
+ import path from 'path';
6
+ import { isApiOnly } from '@modern-js/utils';
7
+ import { getModuleNameMapper, DEFAULT_RESOLVER_PATH } from "../../base";
8
+ import { bff_info_key } from "./constant";
9
+ import { isBFFProject } from "./utils";
10
+ export var setJestConfigForBFF = /*#__PURE__*/function () {
11
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref) {
12
+ var _userConfig$source;
13
+
14
+ var pwd, userConfig, plugins, routes, utils, bffConfig, jestConfig, alias, aliasMapper, transform, moduleNameMapper, apiOnly, mergedModuleNameMapper, resolver, configFields, commonConfig;
15
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
16
+ while (1) {
17
+ switch (_context.prev = _context.next) {
18
+ case 0:
19
+ pwd = _ref.pwd, userConfig = _ref.userConfig, plugins = _ref.plugins, routes = _ref.routes, utils = _ref.utils;
20
+ bffConfig = {
21
+ rootDir: path.join(pwd, './api'),
22
+ setupFilesAfterEnv: [require.resolve("./setup")],
23
+ testEnvironment: require.resolve("./env"),
24
+ testMatch: ["**/api/**/*.test.[jt]s"],
25
+ globals: _defineProperty({}, bff_info_key, {
26
+ appDir: pwd,
27
+ modernUserConfig: userConfig,
28
+ plugins: plugins,
29
+ routes: routes
30
+ })
31
+ };
32
+ jestConfig = utils.jestConfig;
33
+ alias = (userConfig === null || userConfig === void 0 ? void 0 : (_userConfig$source = userConfig.source) === null || _userConfig$source === void 0 ? void 0 : _userConfig$source.alias) || {};
34
+ aliasMapper = getModuleNameMapper(alias);
35
+ transform = jestConfig.transform, moduleNameMapper = jestConfig.moduleNameMapper;
36
+ _context.next = 8;
37
+ return isApiOnly(pwd);
38
+
39
+ case 8:
40
+ apiOnly = _context.sent;
41
+ mergedModuleNameMapper = _objectSpread(_objectSpread({}, moduleNameMapper), aliasMapper);
42
+ resolver = jestConfig.resolver || DEFAULT_RESOLVER_PATH; // 这三个配置不能设置在 projects 中,需要设置在外层(https://github.com/facebook/jest/issues/9696)
43
+
44
+ configFields = ['coverage', 'collectCoverage', 'testTimeout'];
45
+ commonConfig = configFields.reduce(function (obj, field) {
46
+ if (jestConfig.hasOwnProperty(field)) {
47
+ obj[field] = jestConfig[field];
48
+ }
49
+
50
+ return obj;
51
+ }, {});
52
+
53
+ if (!apiOnly) {
54
+ utils.setJestConfig({
55
+ projects: [_objectSpread({}, jestConfig), _objectSpread({
56
+ transform: transform,
57
+ moduleNameMapper: mergedModuleNameMapper,
58
+ resolver: resolver
59
+ }, bffConfig)]
60
+ }, {
61
+ force: true
62
+ });
63
+ } else {
64
+ utils.setJestConfig({
65
+ projects: [_objectSpread({
66
+ transform: transform,
67
+ moduleNameMapper: mergedModuleNameMapper,
68
+ resolver: resolver
69
+ }, bffConfig)]
70
+ }, {
71
+ force: true
72
+ });
73
+ }
74
+
75
+ utils.setJestConfig(commonConfig);
76
+
77
+ case 15:
78
+ case "end":
79
+ return _context.stop();
80
+ }
81
+ }
82
+ }, _callee);
83
+ }));
84
+
85
+ return function setJestConfigForBFF(_x) {
86
+ return _ref2.apply(this, arguments);
87
+ };
88
+ }();
89
+ export default (function () {
90
+ return {
91
+ name: '@modern-js/testing-plugin-bff',
92
+ setup: function setup(api) {
93
+ return {
94
+ jestConfig: function () {
95
+ var _jestConfig = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(utils, next) {
96
+ var appContext, pwd, userConfig, plugins;
97
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
98
+ while (1) {
99
+ switch (_context2.prev = _context2.next) {
100
+ case 0:
101
+ appContext = api.useAppContext();
102
+ pwd = appContext.appDirectory;
103
+
104
+ if (isBFFProject(pwd)) {
105
+ _context2.next = 4;
106
+ break;
107
+ }
108
+
109
+ return _context2.abrupt("return", next(utils));
110
+
111
+ case 4:
112
+ userConfig = api.useResolvedConfigContext();
113
+ plugins = appContext.plugins.map(function (p) {
114
+ return p.server;
115
+ }).filter(Boolean);
116
+ _context2.next = 8;
117
+ return setJestConfigForBFF({
118
+ pwd: pwd,
119
+ userConfig: userConfig,
120
+ plugins: plugins,
121
+ routes: appContext.serverRoutes,
122
+ utils: utils
123
+ });
124
+
125
+ case 8:
126
+ return _context2.abrupt("return", next(utils));
127
+
128
+ case 9:
129
+ case "end":
130
+ return _context2.stop();
131
+ }
132
+ }
133
+ }, _callee2);
134
+ }));
135
+
136
+ function jestConfig(_x2, _x3) {
137
+ return _jestConfig.apply(this, arguments);
138
+ }
139
+
140
+ return jestConfig;
141
+ }()
142
+ };
143
+ }
144
+ };
145
+ });
@@ -0,0 +1,113 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
+ import _typeof from "@babel/runtime/helpers/esm/typeof";
4
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
5
+ import * as ptr from 'path-to-regexp';
6
+ import * as mock_appModule from "./app"; // eslint-disable-next-line @typescript-eslint/naming-convention
7
+
8
+ var mock_replaceUrlWithParams = function mock_replaceUrlWithParams(url, paramValues, payload) {
9
+ var keys = [];
10
+ ptr.pathToRegexp(url, keys);
11
+ var params = keys.reduce(function (cur, key, index) {
12
+ if (paramValues[index]) {
13
+ cur[key.name] = paramValues[index];
14
+ }
15
+
16
+ return cur;
17
+ }, {});
18
+ var getFinalPath = ptr.compile(url, {
19
+ encode: encodeURIComponent
20
+ });
21
+ return getFinalPath(_objectSpread(_objectSpread({}, params), payload));
22
+ }; // eslint-disable-next-line @typescript-eslint/naming-convention
23
+
24
+
25
+ var mock_getParamsAndPayload = function mock_getParamsAndPayload(args) {
26
+ if (args.length === 0) {
27
+ return [[], {}];
28
+ }
29
+
30
+ var head = args[0];
31
+
32
+ if (_typeof(head) === 'object') {
33
+ return [[], head];
34
+ } else {
35
+ var latest = args[args.length - 1];
36
+
37
+ if (_typeof(latest) === 'object') {
38
+ return [args.slice(0, args.length - 1), latest];
39
+ } else {
40
+ return [args, {}];
41
+ }
42
+ }
43
+ };
44
+
45
+ export default (function (mock_apiInfosByFile, mock_app) {
46
+ var files = Object.keys(mock_apiInfosByFile);
47
+ files.forEach(function (mockedFile) {
48
+ jest.mock(mockedFile, function () {
49
+ var supertest = require('supertest');
50
+
51
+ return mock_apiInfosByFile[mockedFile].reduce(function (res, info) {
52
+ var module = _defineProperty({}, info.name, function () {
53
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
54
+ args[_key] = arguments[_key];
55
+ }
56
+
57
+ if (mock_appModule.isInHandler()) {
58
+ return info.handler.apply(info, args);
59
+ }
60
+
61
+ var _mock_getParamsAndPay = mock_getParamsAndPayload(args),
62
+ _mock_getParamsAndPay2 = _slicedToArray(_mock_getParamsAndPay, 2),
63
+ params = _mock_getParamsAndPay2[0],
64
+ payload = _mock_getParamsAndPay2[1];
65
+
66
+ var _ref = module[info.name],
67
+ returnHttp = _ref.returnHttp;
68
+ var url = mock_replaceUrlWithParams(info.routePath, params, payload.params);
69
+ var test = supertest(mock_app)[info.httpMethod.toLowerCase()](url);
70
+
71
+ if (payload.query) {
72
+ test = test.query(payload.query);
73
+ }
74
+
75
+ if (payload.body) {
76
+ test = test.send(payload.body);
77
+ }
78
+
79
+ if (payload.data) {
80
+ test = test.send(payload.data);
81
+ }
82
+
83
+ if (payload.headers) {
84
+ for (var name in payload.headers) {
85
+ test = test.set(name, payload.headers[name]);
86
+ }
87
+ }
88
+
89
+ if (payload.cookies) {
90
+ test = test.set('Cookie', [payload.cookies]);
91
+ }
92
+
93
+ if (returnHttp) {
94
+ return test;
95
+ }
96
+
97
+ return test.then(function (value) {
98
+ try {
99
+ return JSON.parse(value.text);
100
+ } catch (_unused) {
101
+ return value.text;
102
+ }
103
+ });
104
+ });
105
+
106
+ res[info.name] = module[info.name];
107
+ Object.assign(res[info.name], info.handler);
108
+ res.__esModule = true;
109
+ return res;
110
+ }, {});
111
+ });
112
+ });
113
+ });
@@ -0,0 +1,33 @@
1
+ import path from 'path';
2
+ import { ApiRouter } from '@modern-js/bff-core';
3
+ import { bff_info_key } from "./constant";
4
+ import mockAPI from "./mockAPI";
5
+ var uped = false;
6
+
7
+ var setup = function setup() {
8
+ var _bff_info$modernUserC, _bff_info$modernUserC2;
9
+
10
+ if (uped) {
11
+ return;
12
+ }
13
+
14
+ uped = true;
15
+ var bff_info = global[bff_info_key];
16
+ var 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;
17
+ var apiRouter = new ApiRouter({
18
+ apiDir: path.join(bff_info.appDir, './api'),
19
+ prefix: prefix
20
+ });
21
+ var apiInfos = apiRouter.getApiHandlers();
22
+ var apiInfosByFile = apiInfos.reduce(function (res, apiInfo) {
23
+ if (!res[apiInfo.filename]) {
24
+ res[apiInfo.filename] = [];
25
+ }
26
+
27
+ res[apiInfo.filename].push(apiInfo);
28
+ return res;
29
+ }, {});
30
+ mockAPI(apiInfosByFile, global.app);
31
+ };
32
+
33
+ setup();
@@ -0,0 +1,22 @@
1
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
+ import path from 'path';
3
+ import { chalk } from '@modern-js/utils';
4
+ export var isBFFProject = function isBFFProject(pwd) {
5
+ try {
6
+ var packageJson = require(path.join(pwd, './package.json'));
7
+
8
+ var dependencies = packageJson.dependencies,
9
+ devDependencies = packageJson.devDependencies;
10
+ var isBFF = Object.keys(_objectSpread(_objectSpread({}, dependencies), devDependencies)).some(function (dependency) {
11
+ return dependency.includes('plugin-bff');
12
+ });
13
+ var isMWA = Object.keys(devDependencies).some(function (devDependency) {
14
+ return devDependency.includes('app-tools');
15
+ });
16
+ return isMWA && isBFF;
17
+ } catch (error) {
18
+ // eslint-disable-next-line no-console
19
+ console.log(chalk.red(error));
20
+ return false;
21
+ }
22
+ };
@@ -3,10 +3,10 @@ import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
3
3
  import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
4
4
  import path from 'path';
5
5
  import { PLUGIN_SCHEMAS, createRuntimeExportsUtils, isApiOnly } from '@modern-js/utils';
6
- import { testingHooks, getModuleNameMapper, DEFAULT_RESOLVER_PATH } from '@modern-js/testing';
7
6
  import { getWebpackConfig, WebpackConfigTarget } from '@modern-js/webpack';
8
- import TestingBffPlugin from '@modern-js/testing-plugin-bff';
7
+ import { testingHooks, getModuleNameMapper, DEFAULT_RESOLVER_PATH } from "../base";
9
8
  import { MODERNJS_CONFIG_KEY } from "../constant";
9
+ import TestingBffPlugin from "./bff";
10
10
  import test from "./test";
11
11
  export var mergeUserJestConfig = function mergeUserJestConfig(testUtils) {
12
12
  var resolveJestConfig = testUtils.testConfig.jest; // resolveJestConfig 如果是函数类型,在所有测试插件 jestConfig 都执行后,再执行生成最终配置
@@ -2,7 +2,7 @@ import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
2
2
  import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
3
  import path from 'path';
4
4
  import { compiler } from '@modern-js/babel-compiler';
5
- import { runTest } from '@modern-js/testing';
5
+ import { runTest } from "../base";
6
6
 
7
7
  var test = /*#__PURE__*/function () {
8
8
  var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(api) {
@@ -1,3 +1,3 @@
1
1
  export { default as renderApp } from "./customRender";
2
2
  export * from '@testing-library/react';
3
- export { testBff } from '@modern-js/testing-plugin-bff';
3
+ export { request as testBff } from "./request";
@@ -0,0 +1,24 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
+
3
+ /* eslint-disable eslint-comments/disable-enable-pair */
4
+ import supertest from 'supertest';
5
+
6
+ function request() {
7
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
8
+ args[_key] = arguments[_key];
9
+ }
10
+
11
+ var fn = args[0],
12
+ extraArgs = args.slice(1);
13
+
14
+ if (!fn) {
15
+ return supertest(global.app);
16
+ }
17
+
18
+ fn.returnHttp = true;
19
+ var res = fn.apply(void 0, _toConsumableArray(extraArgs));
20
+ fn.returnHttp = false;
21
+ return res;
22
+ }
23
+
24
+ export { request };
@@ -0,0 +1,124 @@
1
+ import { TestConfig } from '../types';
2
+ import { TestConfigOperator } from './testConfigOperator';
3
+ /**
4
+ * Parse jest config
5
+ */
6
+
7
+ declare const getJestUtils: (testConfig: TestConfig) => TestConfigOperator;
8
+ declare const patchConfig: (testOperator: TestConfigOperator) => Promise<Partial<{
9
+ automock: boolean;
10
+ bail: number | boolean;
11
+ cache: boolean;
12
+ cacheDirectory: string;
13
+ ci: boolean;
14
+ clearMocks: boolean;
15
+ changedFilesWithAncestor: boolean;
16
+ changedSince: string;
17
+ collectCoverage: boolean;
18
+ collectCoverageFrom: string[];
19
+ collectCoverageOnlyFrom: {
20
+ [key: string]: boolean;
21
+ };
22
+ coverageDirectory: string;
23
+ coveragePathIgnorePatterns: string[];
24
+ coverageProvider: "babel" | "v8";
25
+ coverageReporters: import("@jest/types/build/Config").CoverageReporters;
26
+ coverageThreshold: {
27
+ [path: string]: import("@jest/types/build/Config").CoverageThresholdValue;
28
+ global: import("@jest/types/build/Config").CoverageThresholdValue;
29
+ };
30
+ dependencyExtractor: string;
31
+ detectLeaks: boolean;
32
+ detectOpenHandles: boolean;
33
+ displayName: string | import("@jest/types/build/Config").DisplayName;
34
+ expand: boolean;
35
+ extensionsToTreatAsEsm: string[];
36
+ extraGlobals: string[];
37
+ filter: string;
38
+ findRelatedTests: boolean;
39
+ forceCoverageMatch: string[];
40
+ forceExit: boolean;
41
+ json: boolean;
42
+ globals: import("@jest/types/build/Config").ConfigGlobals;
43
+ globalSetup: string | null | undefined;
44
+ globalTeardown: string | null | undefined;
45
+ haste: import("@jest/types/build/Config").HasteConfig;
46
+ injectGlobals: boolean;
47
+ reporters: (string | import("@jest/types/build/Config").ReporterConfig)[];
48
+ logHeapUsage: boolean;
49
+ lastCommit: boolean;
50
+ listTests: boolean;
51
+ maxConcurrency: number;
52
+ maxWorkers: string | number;
53
+ moduleDirectories: string[];
54
+ moduleFileExtensions: string[];
55
+ moduleLoader: string;
56
+ moduleNameMapper: {
57
+ [key: string]: string | string[];
58
+ };
59
+ modulePathIgnorePatterns: string[];
60
+ modulePaths: string[];
61
+ name: string;
62
+ noStackTrace: boolean;
63
+ notify: boolean;
64
+ notifyMode: string;
65
+ onlyChanged: boolean;
66
+ onlyFailures: boolean;
67
+ outputFile: string;
68
+ passWithNoTests: boolean;
69
+ preprocessorIgnorePatterns: string[];
70
+ preset: string | null | undefined;
71
+ prettierPath: string | null | undefined;
72
+ projects: (string | import("@jest/types/build/Config").InitialProjectOptions)[];
73
+ replname: string | null | undefined;
74
+ resetMocks: boolean;
75
+ resetModules: boolean;
76
+ resolver: string | null | undefined;
77
+ restoreMocks: boolean;
78
+ rootDir: string;
79
+ roots: string[];
80
+ runner: string;
81
+ runTestsByPath: boolean;
82
+ scriptPreprocessor: string;
83
+ setupFiles: string[];
84
+ setupTestFrameworkScriptFile: string;
85
+ setupFilesAfterEnv: string[];
86
+ silent: boolean;
87
+ skipFilter: boolean;
88
+ skipNodeResolution: boolean;
89
+ slowTestThreshold: number;
90
+ snapshotResolver: string;
91
+ snapshotSerializers: string[];
92
+ snapshotFormat: import("@jest/types/build/Config").PrettyFormatOptions;
93
+ errorOnDeprecated: boolean;
94
+ testEnvironment: string;
95
+ testEnvironmentOptions: Record<string, unknown>;
96
+ testFailureExitCode: string | number;
97
+ testLocationInResults: boolean;
98
+ testMatch: string[];
99
+ testNamePattern: string;
100
+ testPathDirs: string[];
101
+ testPathIgnorePatterns: string[];
102
+ testRegex: string | string[];
103
+ testResultsProcessor: string;
104
+ testRunner: string;
105
+ testSequencer: string;
106
+ testURL: string;
107
+ testTimeout: number;
108
+ timers: "modern" | "real" | "fake" | "legacy";
109
+ transform: {
110
+ [regex: string]: string | import("@jest/types/build/Config").TransformerConfig;
111
+ };
112
+ transformIgnorePatterns: string[];
113
+ watchPathIgnorePatterns: string[];
114
+ unmockedModulePathPatterns: string[];
115
+ updateSnapshot: boolean;
116
+ useStderr: boolean;
117
+ verbose?: boolean | undefined;
118
+ watch: boolean;
119
+ watchAll: boolean;
120
+ watchman: boolean;
121
+ watchPlugins: (string | [string, Record<string, unknown>])[];
122
+ }>>;
123
+ export declare const DEFAULT_RESOLVER_PATH: string;
124
+ export { getJestUtils, patchConfig };
@@ -0,0 +1,6 @@
1
+ import { TestConfigOperator } from '../testConfigOperator';
2
+ /**
3
+ * Merge config from testConfig.jest
4
+ */
5
+
6
+ export declare const patchAssetsModule: (testOperator: TestConfigOperator) => void;
@@ -0,0 +1,3 @@
1
+ declare const _default: "test-file-stub";
2
+
3
+ export default _default;
@@ -0,0 +1,2 @@
1
+ import { TestConfigOperator } from '../testConfigOperator';
2
+ export declare const applyPatches: (testConfig: TestConfigOperator) => Promise<void>;
@@ -0,0 +1,6 @@
1
+ import { TestConfigOperator } from '../testConfigOperator';
2
+ /**
3
+ * Map `TestConfig.transformer` to jest config
4
+ */
5
+
6
+ export declare const patchTransformer: (testOperator: TestConfigOperator) => void;
@@ -0,0 +1 @@
1
+ export {};