@modern-js/plugin-testing 2.0.0-beta.0 → 2.0.0-beta.2
Sign up to get free protection for your applications and to get access to all the features.
- 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;
|