@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.
- package/CHANGELOG.md +109 -0
- package/dist/js/modern/base/config/index.js +1 -3
- package/dist/js/modern/base/config/patches/index.js +0 -2
- package/dist/js/modern/base/config/patches/transformer.js +1 -7
- package/dist/js/modern/base/config/resolver.js +0 -3
- package/dist/js/modern/base/config/testConfigOperator.js +0 -23
- package/dist/js/modern/base/config/transformer/babelTransformer.js +0 -1
- package/dist/js/modern/base/runJest.js +11 -14
- package/dist/js/modern/base/utils.js +2 -12
- package/dist/js/modern/cli/bff/app.js +0 -7
- package/dist/js/modern/cli/bff/index.js +4 -15
- package/dist/js/modern/cli/bff/mockAPI.js +4 -20
- package/dist/js/modern/cli/bff/setup.js +0 -5
- package/dist/js/modern/cli/bff/utils/index.js +0 -4
- package/dist/js/modern/cli/index.js +2 -9
- package/dist/js/modern/cli/test.js +0 -4
- package/dist/js/modern/runtime-testing/app.js +0 -15
- package/dist/js/modern/runtime-testing/customRender.js +0 -6
- package/dist/js/modern/runtime-testing/reduck.js +0 -10
- package/dist/js/modern/runtime-testing/request.js +1 -4
- package/dist/js/modern/runtime-testing/resolvePlugins.js +0 -6
- package/dist/js/node/base/config/index.js +0 -8
- package/dist/js/node/base/config/patches/assetsModule.js +0 -2
- package/dist/js/node/base/config/patches/index.js +0 -6
- package/dist/js/node/base/config/patches/transformer.js +1 -9
- package/dist/js/node/base/config/resolver.js +0 -5
- package/dist/js/node/base/config/testConfigOperator.js +0 -24
- package/dist/js/node/base/config/transformer/babelTransformer.js +0 -4
- package/dist/js/node/base/hook.js +0 -2
- package/dist/js/node/base/index.js +0 -7
- package/dist/js/node/base/runJest.js +11 -21
- package/dist/js/node/base/utils.js +2 -22
- package/dist/js/node/cli/bff/app.js +0 -14
- package/dist/js/node/cli/bff/index.js +4 -25
- package/dist/js/node/cli/bff/mockAPI.js +2 -25
- package/dist/js/node/cli/bff/setup.js +0 -11
- package/dist/js/node/cli/bff/utils/index.js +0 -9
- package/dist/js/node/cli/index.js +2 -21
- package/dist/js/node/cli/test.js +0 -10
- package/dist/js/node/index.js +0 -4
- package/dist/js/node/runtime-testing/app.js +0 -20
- package/dist/js/node/runtime-testing/base.js +0 -5
- package/dist/js/node/runtime-testing/customRender.js +0 -10
- package/dist/js/node/runtime-testing/index.js +0 -4
- package/dist/js/node/runtime-testing/reduck.js +0 -24
- package/dist/js/node/runtime-testing/request.js +1 -6
- package/dist/js/node/runtime-testing/resolvePlugins.js +0 -8
- package/dist/js/treeshaking/base/config/index.js +1 -6
- package/dist/js/treeshaking/base/config/patches/index.js +0 -17
- package/dist/js/treeshaking/base/config/patches/transformer.js +1 -7
- package/dist/js/treeshaking/base/config/resolver.js +0 -3
- package/dist/js/treeshaking/base/config/testConfigOperator.js +0 -15
- package/dist/js/treeshaking/base/config/transformer/babelTransformer.js +0 -1
- package/dist/js/treeshaking/base/runJest.js +19 -38
- package/dist/js/treeshaking/base/utils.js +2 -10
- package/dist/js/treeshaking/cli/bff/app.js +0 -13
- package/dist/js/treeshaking/cli/bff/index.js +0 -16
- package/dist/js/treeshaking/cli/bff/mockAPI.js +8 -24
- package/dist/js/treeshaking/cli/bff/setup.js +0 -9
- package/dist/js/treeshaking/cli/bff/utils/index.js +1 -2
- package/dist/js/treeshaking/cli/index.js +2 -11
- package/dist/js/treeshaking/cli/test.js +0 -7
- package/dist/js/treeshaking/runtime-testing/app.js +2 -15
- package/dist/js/treeshaking/runtime-testing/customRender.js +0 -3
- package/dist/js/treeshaking/runtime-testing/reduck.js +0 -7
- package/dist/js/treeshaking/runtime-testing/request.js +2 -7
- package/dist/js/treeshaking/runtime-testing/resolvePlugins.js +0 -3
- package/dist/types/base/config/index.d.ts +10 -1
- package/dist/types/base/config/patches/assetsModule.d.ts +0 -1
- package/dist/types/base/config/patches/filemock.d.ts +0 -1
- package/dist/types/base/config/patches/transformer.d.ts +0 -1
- package/dist/types/base/config/testConfigOperator.d.ts +1 -117
- package/dist/types/base/hook.d.ts +4 -6
- package/dist/types/base/runJest.d.ts +7 -3
- package/dist/types/base/utils.d.ts +0 -1
- package/dist/types/cli/bff/index.d.ts +7 -3
- package/dist/types/cli/bff/mockAPI.d.ts +0 -1
- package/dist/types/cli/index.d.ts +7 -3
- package/dist/types/cli/test.d.ts +7 -1
- package/dist/types/runtime-testing/app.d.ts +12 -5
- package/dist/types/runtime-testing/customRender.d.ts +0 -2
- package/dist/types/runtime-testing/resolvePlugins.d.ts +5 -1
- 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'));
|
|
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;
|
|
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
|
-
|
|
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
|
-
};
|
|
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;
|
|
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;
|
package/dist/js/node/cli/test.js
CHANGED
|
@@ -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;
|
package/dist/js/node/index.js
CHANGED
|
@@ -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;
|