@modern-js/plugin-testing 2.14.0 → 2.16.0
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +32 -0
- package/dist/cjs/base/config/index.js +15 -39
- package/dist/cjs/base/config/patches/assetsModule.js +7 -35
- package/dist/cjs/base/config/patches/filemock.js +8 -24
- package/dist/cjs/base/config/patches/index.js +13 -28
- package/dist/cjs/base/config/patches/transformer.js +13 -38
- package/dist/cjs/base/config/resolver.js +23 -26
- package/dist/cjs/base/config/testConfigOperator.js +39 -38
- package/dist/cjs/base/config/transformer/babelTransformer.js +16 -37
- package/dist/cjs/base/hook.js +17 -31
- package/dist/cjs/base/index.js +36 -41
- package/dist/cjs/base/runJest.js +31 -57
- package/dist/cjs/base/types/index.js +4 -15
- package/dist/cjs/base/utils.js +30 -53
- package/dist/cjs/cli/bff/app.js +17 -32
- package/dist/cjs/cli/bff/constant.js +7 -25
- package/dist/cjs/cli/bff/index.js +71 -92
- package/dist/cjs/cli/bff/mockAPI.js +115 -92
- package/dist/cjs/cli/bff/setup.js +30 -51
- package/dist/cjs/cli/bff/utils/index.js +21 -45
- package/dist/cjs/cli/index.js +43 -59
- package/dist/cjs/cli/test.js +35 -62
- package/dist/cjs/constant.js +7 -25
- package/dist/cjs/index.js +20 -19
- package/dist/cjs/runtime-testing/app.js +40 -45
- package/dist/cjs/runtime-testing/base.js +34 -40
- package/dist/cjs/runtime-testing/customRender.js +21 -39
- package/dist/cjs/runtime-testing/index.js +19 -18
- package/dist/cjs/runtime-testing/reduck.js +35 -55
- package/dist/cjs/runtime-testing/request.js +16 -39
- package/dist/cjs/runtime-testing/resolvePlugins.js +12 -25
- package/dist/esm/base/config/index.js +146 -139
- package/dist/esm/base/config/patches/assetsModule.js +7 -8
- package/dist/esm/base/config/patches/filemock.js +1 -2
- package/dist/esm/base/config/patches/index.js +214 -207
- package/dist/esm/base/config/patches/transformer.js +27 -28
- package/dist/esm/base/config/resolver.js +22 -35
- package/dist/esm/base/config/testConfigOperator.js +119 -116
- package/dist/esm/base/config/transformer/babelTransformer.js +12 -13
- package/dist/esm/base/hook.js +5 -6
- package/dist/esm/base/index.js +5 -6
- package/dist/esm/base/runJest.js +270 -264
- package/dist/esm/base/types/index.js +1 -1
- package/dist/esm/base/utils.js +66 -67
- package/dist/esm/cli/bff/app.js +187 -179
- package/dist/esm/cli/bff/constant.js +1 -2
- package/dist/esm/cli/bff/index.js +285 -278
- package/dist/esm/cli/bff/mockAPI.js +177 -163
- package/dist/esm/cli/bff/setup.js +182 -174
- package/dist/esm/cli/bff/utils/index.js +40 -41
- package/dist/esm/cli/index.js +249 -242
- package/dist/esm/cli/test.js +172 -166
- package/dist/esm/constant.js +1 -2
- package/dist/esm/runtime-testing/app.js +79 -77
- package/dist/esm/runtime-testing/base.js +2 -3
- package/dist/esm/runtime-testing/customRender.js +30 -31
- package/dist/esm/runtime-testing/reduck.js +72 -73
- package/dist/esm/runtime-testing/request.js +55 -45
- package/dist/esm/runtime-testing/resolvePlugins.js +38 -39
- package/dist/esm-node/base/config/index.js +2 -6
- package/dist/esm-node/base/config/patches/assetsModule.js +1 -4
- package/dist/esm-node/base/config/patches/filemock.js +1 -4
- package/dist/esm-node/base/config/patches/index.js +5 -5
- package/dist/esm-node/base/config/patches/transformer.js +5 -5
- package/dist/esm-node/base/config/resolver.js +20 -19
- package/dist/esm-node/base/config/testConfigOperator.js +30 -13
- package/dist/esm-node/base/config/transformer/babelTransformer.js +3 -6
- package/dist/esm-node/base/hook.js +3 -8
- package/dist/esm-node/base/index.js +5 -13
- package/dist/esm-node/base/runJest.js +8 -20
- package/dist/esm-node/base/types/index.js +1 -0
- package/dist/esm-node/base/utils.js +8 -17
- package/dist/esm-node/cli/bff/app.js +2 -7
- package/dist/esm-node/cli/bff/constant.js +1 -4
- package/dist/esm-node/cli/bff/index.js +43 -54
- package/dist/esm-node/cli/bff/mockAPI.js +65 -59
- package/dist/esm-node/cli/bff/setup.js +11 -19
- package/dist/esm-node/cli/bff/utils/index.js +6 -10
- package/dist/esm-node/cli/index.js +11 -23
- package/dist/esm-node/cli/test.js +19 -28
- package/dist/esm-node/constant.js +1 -4
- package/dist/esm-node/runtime-testing/app.js +22 -10
- package/dist/esm-node/runtime-testing/base.js +2 -6
- package/dist/esm-node/runtime-testing/customRender.js +5 -5
- package/dist/esm-node/runtime-testing/reduck.js +10 -16
- package/dist/esm-node/runtime-testing/request.js +1 -3
- package/dist/esm-node/runtime-testing/resolvePlugins.js +6 -6
- package/package.json +18 -14
@@ -1,188 +1,202 @@
|
|
1
|
-
function
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
function _array_like_to_array(arr, len) {
|
2
|
+
if (len == null || len > arr.length)
|
3
|
+
len = arr.length;
|
4
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++)
|
5
|
+
arr2[i] = arr[i];
|
6
|
+
return arr2;
|
5
7
|
}
|
6
|
-
function
|
7
|
-
|
8
|
+
function _array_with_holes(arr) {
|
9
|
+
if (Array.isArray(arr))
|
10
|
+
return arr;
|
8
11
|
}
|
9
|
-
function
|
10
|
-
|
12
|
+
function _array_without_holes(arr) {
|
13
|
+
if (Array.isArray(arr))
|
14
|
+
return _array_like_to_array(arr);
|
11
15
|
}
|
12
|
-
function
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
16
|
+
function _define_property(obj, key, value) {
|
17
|
+
if (key in obj) {
|
18
|
+
Object.defineProperty(obj, key, {
|
19
|
+
value,
|
20
|
+
enumerable: true,
|
21
|
+
configurable: true,
|
22
|
+
writable: true
|
23
|
+
});
|
24
|
+
} else {
|
25
|
+
obj[key] = value;
|
26
|
+
}
|
27
|
+
return obj;
|
24
28
|
}
|
25
|
-
function
|
26
|
-
|
29
|
+
function _iterable_to_array(iter) {
|
30
|
+
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null)
|
31
|
+
return Array.from(iter);
|
27
32
|
}
|
28
|
-
function
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
33
|
+
function _iterable_to_array_limit(arr, i) {
|
34
|
+
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
35
|
+
if (_i == null)
|
36
|
+
return;
|
37
|
+
var _arr = [];
|
38
|
+
var _n = true;
|
39
|
+
var _d = false;
|
40
|
+
var _s, _e;
|
41
|
+
try {
|
42
|
+
for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
|
43
|
+
_arr.push(_s.value);
|
44
|
+
if (i && _arr.length === i)
|
45
|
+
break;
|
46
|
+
}
|
47
|
+
} catch (err) {
|
48
|
+
_d = true;
|
49
|
+
_e = err;
|
50
|
+
} finally {
|
35
51
|
try {
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
_d = true;
|
42
|
-
_e = err;
|
43
|
-
} finally{
|
44
|
-
try {
|
45
|
-
if (!_n && _i["return"] != null) _i["return"]();
|
46
|
-
} finally{
|
47
|
-
if (_d) throw _e;
|
48
|
-
}
|
52
|
+
if (!_n && _i["return"] != null)
|
53
|
+
_i["return"]();
|
54
|
+
} finally {
|
55
|
+
if (_d)
|
56
|
+
throw _e;
|
49
57
|
}
|
50
|
-
|
58
|
+
}
|
59
|
+
return _arr;
|
51
60
|
}
|
52
|
-
function
|
53
|
-
|
61
|
+
function _non_iterable_rest() {
|
62
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
54
63
|
}
|
55
|
-
function
|
56
|
-
|
64
|
+
function _non_iterable_spread() {
|
65
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
57
66
|
}
|
58
|
-
function
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
}
|
67
|
-
ownKeys.forEach(function(key) {
|
68
|
-
_defineProperty(target, key, source[key]);
|
69
|
-
});
|
67
|
+
function _object_spread(target) {
|
68
|
+
for (var i = 1; i < arguments.length; i++) {
|
69
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
70
|
+
var ownKeys = Object.keys(source);
|
71
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
72
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
73
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
74
|
+
}));
|
70
75
|
}
|
71
|
-
|
76
|
+
ownKeys.forEach(function(key) {
|
77
|
+
_define_property(target, key, source[key]);
|
78
|
+
});
|
79
|
+
}
|
80
|
+
return target;
|
72
81
|
}
|
73
|
-
function
|
74
|
-
|
82
|
+
function _sliced_to_array(arr, i) {
|
83
|
+
return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
|
75
84
|
}
|
76
|
-
function
|
77
|
-
|
85
|
+
function _to_consumable_array(arr) {
|
86
|
+
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
78
87
|
}
|
79
|
-
function
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
88
|
+
function _unsupported_iterable_to_array(o, minLen) {
|
89
|
+
if (!o)
|
90
|
+
return;
|
91
|
+
if (typeof o === "string")
|
92
|
+
return _array_like_to_array(o, minLen);
|
93
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
94
|
+
if (n === "Object" && o.constructor)
|
95
|
+
n = o.constructor.name;
|
96
|
+
if (n === "Map" || n === "Set")
|
97
|
+
return Array.from(n);
|
98
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
|
99
|
+
return _array_like_to_array(o, minLen);
|
86
100
|
}
|
87
101
|
import * as ptr from "path-to-regexp";
|
88
102
|
import * as mockAppModule from "./app";
|
89
103
|
var mock_replaceUrlWithParams = function(url, paramValues, payload) {
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
104
|
+
var keys = [];
|
105
|
+
ptr.pathToRegexp(url, keys);
|
106
|
+
var params = keys.reduce(function(cur, key, index) {
|
107
|
+
if (paramValues[index]) {
|
108
|
+
cur[key.name] = paramValues[index];
|
109
|
+
}
|
110
|
+
return cur;
|
111
|
+
}, {});
|
112
|
+
var getFinalPath = ptr.compile(url, {
|
113
|
+
encode: encodeURIComponent
|
114
|
+
});
|
115
|
+
return getFinalPath(_object_spread({}, params, payload));
|
102
116
|
};
|
103
117
|
var mock_getParamsAndPayload = function(args) {
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
118
|
+
if (args.length === 0) {
|
119
|
+
return [
|
120
|
+
[],
|
121
|
+
{}
|
122
|
+
];
|
123
|
+
}
|
124
|
+
var head = args[0];
|
125
|
+
if (typeof head === "object") {
|
126
|
+
return [
|
127
|
+
[],
|
128
|
+
head
|
129
|
+
];
|
130
|
+
} else {
|
131
|
+
var latest = args[args.length - 1];
|
132
|
+
if (typeof latest === "object") {
|
133
|
+
return [
|
134
|
+
args.slice(0, args.length - 1),
|
135
|
+
latest
|
136
|
+
];
|
116
137
|
} else {
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
latest
|
122
|
-
];
|
123
|
-
} else {
|
124
|
-
return [
|
125
|
-
args,
|
126
|
-
{}
|
127
|
-
];
|
128
|
-
}
|
138
|
+
return [
|
139
|
+
args,
|
140
|
+
{}
|
141
|
+
];
|
129
142
|
}
|
143
|
+
}
|
130
144
|
};
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
});
|
180
|
-
res[info.name] = module[info.name];
|
181
|
-
Object.assign(res[info.name], info.handler);
|
182
|
-
res.__esModule = true;
|
183
|
-
return res;
|
184
|
-
}, {});
|
145
|
+
export default function(mockApiInfosByFile) {
|
146
|
+
var files = Object.keys(mockApiInfosByFile);
|
147
|
+
files.forEach(function(mockedFile) {
|
148
|
+
jest.mock(mockedFile, function() {
|
149
|
+
var supertest = require("supertest");
|
150
|
+
return mockApiInfosByFile[mockedFile].reduce(function(res, info) {
|
151
|
+
var module = _define_property({}, info.name, function() {
|
152
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
153
|
+
args[_key] = arguments[_key];
|
154
|
+
}
|
155
|
+
if (mockAppModule.isInHandler()) {
|
156
|
+
var _info;
|
157
|
+
return (_info = info).handler.apply(_info, _to_consumable_array(args));
|
158
|
+
}
|
159
|
+
var _mock_getParamsAndPayload = _sliced_to_array(mock_getParamsAndPayload(args), 2), params = _mock_getParamsAndPayload[0], payload = _mock_getParamsAndPayload[1];
|
160
|
+
var returnHttp = module[info.name].returnHttp;
|
161
|
+
var url = mock_replaceUrlWithParams(info.routePath, params, payload.params);
|
162
|
+
var app = mockAppModule.getApp();
|
163
|
+
var test = supertest(app)[info.httpMethod.toLowerCase()](url);
|
164
|
+
if (payload.query) {
|
165
|
+
test = test.query(payload.query);
|
166
|
+
}
|
167
|
+
if (payload.body) {
|
168
|
+
test = test.send(payload.body);
|
169
|
+
}
|
170
|
+
if (payload.data) {
|
171
|
+
test = test.send(payload.data);
|
172
|
+
}
|
173
|
+
if (payload.headers) {
|
174
|
+
for (var name in payload.headers) {
|
175
|
+
test = test.set(name, payload.headers[name]);
|
176
|
+
}
|
177
|
+
}
|
178
|
+
if (payload.cookies) {
|
179
|
+
test = test.set("Cookie", [
|
180
|
+
payload.cookies
|
181
|
+
]);
|
182
|
+
}
|
183
|
+
if (returnHttp) {
|
184
|
+
return test;
|
185
|
+
}
|
186
|
+
return test.then(function(value) {
|
187
|
+
try {
|
188
|
+
return JSON.parse(value.text);
|
189
|
+
} catch (e) {
|
190
|
+
return value.text;
|
191
|
+
}
|
192
|
+
});
|
185
193
|
});
|
194
|
+
res[info.name] = module[info.name];
|
195
|
+
Object.assign(res[info.name], info.handler);
|
196
|
+
res.__esModule = true;
|
197
|
+
return res;
|
198
|
+
}, {});
|
186
199
|
});
|
187
|
-
};
|
188
|
-
|
200
|
+
});
|
201
|
+
}
|
202
|
+
;
|