@eggjs/mock 6.0.7 → 6.1.0-beta.11
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/README.md +36 -57
- package/README.zh_CN.md +31 -51
- package/dist/_virtual/rolldown_runtime.js +7 -0
- package/dist/app/extend/agent.d.ts +39 -0
- package/dist/app/extend/agent.js +48 -0
- package/dist/app/extend/application.d.ts +175 -0
- package/dist/app/extend/application.js +385 -0
- package/dist/app/middleware/cluster_app_mock.d.ts +6 -0
- package/dist/app/middleware/cluster_app_mock.js +97 -0
- package/dist/app.d.ts +10 -0
- package/dist/app.js +17 -0
- package/dist/bootstrap.d.ts +9 -0
- package/dist/bootstrap.js +14 -0
- package/dist/index.d.ts +81 -0
- package/dist/index.js +47 -0
- package/dist/inject_mocha.d.ts +1 -0
- package/dist/inject_mocha.js +34 -0
- package/dist/lib/agent_handler.d.ts +7 -0
- package/dist/lib/agent_handler.js +26 -0
- package/dist/lib/app.d.ts +7 -0
- package/dist/lib/app.js +251 -0
- package/dist/lib/app_handler.d.ts +9 -0
- package/dist/lib/app_handler.js +56 -0
- package/dist/lib/cluster.d.ts +126 -0
- package/dist/lib/cluster.js +283 -0
- package/dist/lib/context.d.ts +4 -0
- package/dist/lib/context.js +10 -0
- package/dist/lib/format_options.d.ts +10 -0
- package/dist/lib/format_options.js +65 -0
- package/dist/lib/inject_context.d.ts +9 -0
- package/dist/lib/inject_context.js +106 -0
- package/dist/lib/mock_agent.d.ts +9 -0
- package/dist/lib/mock_agent.js +45 -0
- package/dist/lib/mock_custom_loader.d.ts +4 -0
- package/dist/lib/mock_custom_loader.js +35 -0
- package/dist/lib/mock_http_server.d.ts +6 -0
- package/dist/lib/mock_http_server.js +17 -0
- package/dist/lib/mock_httpclient.d.ts +40 -0
- package/dist/lib/mock_httpclient.js +110 -0
- package/dist/lib/parallel/agent.d.ts +24 -0
- package/dist/lib/parallel/agent.js +111 -0
- package/dist/lib/parallel/app.d.ts +24 -0
- package/dist/lib/parallel/app.js +99 -0
- package/dist/lib/parallel/util.d.ts +6 -0
- package/dist/lib/parallel/util.js +59 -0
- package/dist/lib/prerequire.d.ts +1 -0
- package/dist/lib/prerequire.js +1 -0
- package/dist/lib/request_call_function.d.ts +1 -0
- package/dist/lib/request_call_function.js +37 -0
- package/dist/lib/restore.d.ts +4 -0
- package/dist/lib/restore.js +16 -0
- package/dist/lib/start-cluster.d.ts +1 -0
- package/dist/lib/start-cluster.js +19 -0
- package/dist/lib/supertest.d.ts +16 -0
- package/dist/lib/supertest.js +39 -0
- package/dist/lib/tmp/empty.d.ts +1 -0
- package/dist/lib/tmp/empty.js +1 -0
- package/{src/lib/types.ts → dist/lib/types.d.ts} +12 -29
- package/dist/lib/types.js +1 -0
- package/dist/lib/utils.d.ts +12 -0
- package/dist/lib/utils.js +40 -0
- package/dist/register.d.ts +10 -0
- package/dist/register.js +40 -0
- package/dist/typings/index.d.ts +1 -0
- package/package.json +69 -98
- package/dist/commonjs/app/extend/agent.d.ts +0 -34
- package/dist/commonjs/app/extend/agent.js +0 -49
- package/dist/commonjs/app/extend/application.d.ts +0 -172
- package/dist/commonjs/app/extend/application.js +0 -450
- package/dist/commonjs/app/middleware/cluster_app_mock.d.ts +0 -3
- package/dist/commonjs/app/middleware/cluster_app_mock.js +0 -101
- package/dist/commonjs/app.d.ts +0 -6
- package/dist/commonjs/app.js +0 -20
- package/dist/commonjs/bootstrap.d.ts +0 -5
- package/dist/commonjs/bootstrap.js +0 -59
- package/dist/commonjs/index.d.ts +0 -77
- package/dist/commonjs/index.js +0 -114
- package/dist/commonjs/lib/agent_handler.d.ts +0 -3
- package/dist/commonjs/lib/agent_handler.js +0 -28
- package/dist/commonjs/lib/app.d.ts +0 -3
- package/dist/commonjs/lib/app.js +0 -301
- package/dist/commonjs/lib/app_handler.d.ts +0 -5
- package/dist/commonjs/lib/app_handler.js +0 -71
- package/dist/commonjs/lib/cluster.d.ts +0 -114
- package/dist/commonjs/lib/cluster.js +0 -337
- package/dist/commonjs/lib/context.d.ts +0 -1
- package/dist/commonjs/lib/context.js +0 -16
- package/dist/commonjs/lib/format_options.d.ts +0 -5
- package/dist/commonjs/lib/format_options.js +0 -100
- package/dist/commonjs/lib/inject_context.d.ts +0 -6
- package/dist/commonjs/lib/inject_context.js +0 -132
- package/dist/commonjs/lib/mock_agent.d.ts +0 -5
- package/dist/commonjs/lib/mock_agent.js +0 -49
- package/dist/commonjs/lib/mock_custom_loader.d.ts +0 -1
- package/dist/commonjs/lib/mock_custom_loader.js +0 -37
- package/dist/commonjs/lib/mock_http_server.d.ts +0 -2
- package/dist/commonjs/lib/mock_http_server.js +0 -24
- package/dist/commonjs/lib/mock_httpclient.d.ts +0 -36
- package/dist/commonjs/lib/mock_httpclient.js +0 -147
- package/dist/commonjs/lib/parallel/agent.d.ts +0 -20
- package/dist/commonjs/lib/parallel/agent.js +0 -125
- package/dist/commonjs/lib/parallel/app.d.ts +0 -20
- package/dist/commonjs/lib/parallel/app.js +0 -115
- package/dist/commonjs/lib/parallel/util.d.ts +0 -3
- package/dist/commonjs/lib/parallel/util.js +0 -77
- package/dist/commonjs/lib/prerequire.d.ts +0 -1
- package/dist/commonjs/lib/prerequire.js +0 -26
- package/dist/commonjs/lib/request_call_function.d.ts +0 -1
- package/dist/commonjs/lib/request_call_function.js +0 -52
- package/dist/commonjs/lib/restore.d.ts +0 -1
- package/dist/commonjs/lib/restore.js +0 -16
- package/dist/commonjs/lib/start-cluster.d.ts +0 -2
- package/dist/commonjs/lib/start-cluster.js +0 -23
- package/dist/commonjs/lib/supertest.d.ts +0 -11
- package/dist/commonjs/lib/supertest.js +0 -48
- package/dist/commonjs/lib/tmp/empty.d.ts +0 -1
- package/dist/commonjs/lib/tmp/empty.js +0 -3
- package/dist/commonjs/lib/types.d.ts +0 -68
- package/dist/commonjs/lib/types.js +0 -3
- package/dist/commonjs/lib/utils.d.ts +0 -9
- package/dist/commonjs/lib/utils.js +0 -80
- package/dist/commonjs/package.json +0 -3
- package/dist/commonjs/register.d.ts +0 -8
- package/dist/commonjs/register.js +0 -80
- package/dist/esm/app/extend/agent.d.ts +0 -34
- package/dist/esm/app/extend/agent.js +0 -46
- package/dist/esm/app/extend/application.d.ts +0 -172
- package/dist/esm/app/extend/application.js +0 -444
- package/dist/esm/app/middleware/cluster_app_mock.d.ts +0 -3
- package/dist/esm/app/middleware/cluster_app_mock.js +0 -99
- package/dist/esm/app.d.ts +0 -6
- package/dist/esm/app.js +0 -17
- package/dist/esm/bootstrap.d.ts +0 -5
- package/dist/esm/bootstrap.js +0 -15
- package/dist/esm/index.d.ts +0 -77
- package/dist/esm/index.js +0 -91
- package/dist/esm/lib/agent_handler.d.ts +0 -3
- package/dist/esm/lib/agent_handler.js +0 -24
- package/dist/esm/lib/app.d.ts +0 -3
- package/dist/esm/lib/app.js +0 -295
- package/dist/esm/lib/app_handler.d.ts +0 -5
- package/dist/esm/lib/app_handler.js +0 -65
- package/dist/esm/lib/cluster.d.ts +0 -114
- package/dist/esm/lib/cluster.js +0 -328
- package/dist/esm/lib/context.d.ts +0 -1
- package/dist/esm/lib/context.js +0 -13
- package/dist/esm/lib/format_options.d.ts +0 -5
- package/dist/esm/lib/format_options.js +0 -94
- package/dist/esm/lib/inject_context.d.ts +0 -6
- package/dist/esm/lib/inject_context.js +0 -126
- package/dist/esm/lib/mock_agent.d.ts +0 -5
- package/dist/esm/lib/mock_agent.js +0 -45
- package/dist/esm/lib/mock_custom_loader.d.ts +0 -1
- package/dist/esm/lib/mock_custom_loader.js +0 -34
- package/dist/esm/lib/mock_http_server.d.ts +0 -2
- package/dist/esm/lib/mock_http_server.js +0 -18
- package/dist/esm/lib/mock_httpclient.d.ts +0 -36
- package/dist/esm/lib/mock_httpclient.js +0 -144
- package/dist/esm/lib/parallel/agent.d.ts +0 -20
- package/dist/esm/lib/parallel/agent.js +0 -117
- package/dist/esm/lib/parallel/app.d.ts +0 -20
- package/dist/esm/lib/parallel/app.js +0 -110
- package/dist/esm/lib/parallel/util.d.ts +0 -3
- package/dist/esm/lib/parallel/util.js +0 -73
- package/dist/esm/lib/prerequire.d.ts +0 -1
- package/dist/esm/lib/prerequire.js +0 -25
- package/dist/esm/lib/request_call_function.d.ts +0 -1
- package/dist/esm/lib/request_call_function.js +0 -47
- package/dist/esm/lib/restore.d.ts +0 -1
- package/dist/esm/lib/restore.js +0 -13
- package/dist/esm/lib/start-cluster.d.ts +0 -2
- package/dist/esm/lib/start-cluster.js +0 -18
- package/dist/esm/lib/supertest.d.ts +0 -11
- package/dist/esm/lib/supertest.js +0 -40
- package/dist/esm/lib/tmp/empty.d.ts +0 -1
- package/dist/esm/lib/tmp/empty.js +0 -2
- package/dist/esm/lib/types.d.ts +0 -68
- package/dist/esm/lib/types.js +0 -2
- package/dist/esm/lib/utils.d.ts +0 -9
- package/dist/esm/lib/utils.js +0 -69
- package/dist/esm/package.json +0 -3
- package/dist/esm/register.d.ts +0 -8
- package/dist/esm/register.js +0 -75
- package/dist/package.json +0 -4
- package/src/app/extend/agent.ts +0 -57
- package/src/app/extend/application.ts +0 -512
- package/src/app/middleware/cluster_app_mock.ts +0 -102
- package/src/app.ts +0 -18
- package/src/bootstrap.ts +0 -25
- package/src/index.ts +0 -112
- package/src/lib/agent_handler.ts +0 -28
- package/src/lib/app.ts +0 -314
- package/src/lib/app_handler.ts +0 -77
- package/src/lib/cluster.ts +0 -363
- package/src/lib/context.ts +0 -14
- package/src/lib/format_options.ts +0 -103
- package/src/lib/inject_context.ts +0 -134
- package/src/lib/mock_agent.ts +0 -57
- package/src/lib/mock_custom_loader.ts +0 -36
- package/src/lib/mock_http_server.ts +0 -19
- package/src/lib/mock_httpclient.ts +0 -183
- package/src/lib/parallel/agent.ts +0 -128
- package/src/lib/parallel/app.ts +0 -123
- package/src/lib/parallel/util.ts +0 -66
- package/src/lib/prerequire.ts +0 -25
- package/src/lib/request_call_function.ts +0 -49
- package/src/lib/restore.ts +0 -14
- package/src/lib/start-cluster.ts +0 -23
- package/src/lib/supertest.ts +0 -45
- package/src/lib/tmp/.gitkeep +0 -0
- package/src/lib/tmp/empty.ts +0 -0
- package/src/lib/utils.ts +0 -82
- package/src/register.ts +0 -80
- package/src/typings/index.d.ts +0 -4
|
@@ -1,450 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const node_util_1 = require("node:util");
|
|
7
|
-
const node_http_1 = __importDefault(require("node:http"));
|
|
8
|
-
const node_fs_1 = __importDefault(require("node:fs"));
|
|
9
|
-
const node_assert_1 = __importDefault(require("node:assert"));
|
|
10
|
-
const merge_descriptors_1 = __importDefault(require("merge-descriptors"));
|
|
11
|
-
const is_type_of_1 = require("is-type-of");
|
|
12
|
-
const mm_1 = require("mm");
|
|
13
|
-
const egg_logger_1 = require("egg-logger");
|
|
14
|
-
const core_1 = require("@eggjs/core");
|
|
15
|
-
const mock_agent_js_1 = require("../../lib/mock_agent.js");
|
|
16
|
-
const mock_httpclient_js_1 = require("../../lib/mock_httpclient.js");
|
|
17
|
-
const supertest_js_1 = require("../../lib/supertest.js");
|
|
18
|
-
const debug = (0, node_util_1.debuglog)('@eggjs/mock/app/extend/application');
|
|
19
|
-
const ORIGIN_TYPES = Symbol('@eggjs/mock originTypes');
|
|
20
|
-
const BACKGROUND_TASKS = Symbol('Application#backgroundTasks');
|
|
21
|
-
const REUSED_CTX = Symbol('Context#reusedInSuite');
|
|
22
|
-
class ApplicationUnittest extends core_1.EggCore {
|
|
23
|
-
_mockHttpClient;
|
|
24
|
-
/**
|
|
25
|
-
* mock Context
|
|
26
|
-
* @function App#mockContext
|
|
27
|
-
* @param {Object} data - ctx data
|
|
28
|
-
* @param {Object} [options] - mock ctx options
|
|
29
|
-
* @example
|
|
30
|
-
* ```js
|
|
31
|
-
* const ctx = app.mockContext({
|
|
32
|
-
* user: {
|
|
33
|
-
* name: 'Jason'
|
|
34
|
-
* }
|
|
35
|
-
* });
|
|
36
|
-
* console.log(ctx.user.name); // Jason
|
|
37
|
-
*
|
|
38
|
-
* // controller
|
|
39
|
-
* module.exports = function*() {
|
|
40
|
-
* this.body = this.user.name;
|
|
41
|
-
* };
|
|
42
|
-
* ```
|
|
43
|
-
*/
|
|
44
|
-
mockContext(data, options) {
|
|
45
|
-
data = data ?? {};
|
|
46
|
-
function mockRequest(req) {
|
|
47
|
-
for (const key in data?.headers) {
|
|
48
|
-
(0, mm_1.mock)(req.headers, key, data.headers[key]);
|
|
49
|
-
(0, mm_1.mock)(req.headers, key.toLowerCase(), data.headers[key]);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
// try to use app.options.mockCtxStorage first
|
|
53
|
-
const mockCtxStorage = this.options.mockCtxStorage ?? true;
|
|
54
|
-
options = Object.assign({ mockCtxStorage }, options);
|
|
55
|
-
if ('_customMockContext' in this && typeof this._customMockContext === 'function') {
|
|
56
|
-
this._customMockContext(data);
|
|
57
|
-
}
|
|
58
|
-
// 使用者自定义mock,可以覆盖上面的 mock
|
|
59
|
-
for (const key in data) {
|
|
60
|
-
(0, mm_1.mock)(this.context, key, data[key]);
|
|
61
|
-
}
|
|
62
|
-
const req = this.mockRequest(data);
|
|
63
|
-
const res = new node_http_1.default.ServerResponse(req);
|
|
64
|
-
if (options.reuseCtxStorage !== false) {
|
|
65
|
-
if (this.currentContext && !this.currentContext[REUSED_CTX]) {
|
|
66
|
-
mockRequest(this.currentContext.request.req);
|
|
67
|
-
this.currentContext[REUSED_CTX] = true;
|
|
68
|
-
return this.currentContext;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
const ctx = this.createContext(req, res);
|
|
72
|
-
if (options.mockCtxStorage) {
|
|
73
|
-
(0, mm_1.mock)(this.ctxStorage, 'getStore', () => ctx);
|
|
74
|
-
}
|
|
75
|
-
return ctx;
|
|
76
|
-
}
|
|
77
|
-
async mockContextScope(fn, data) {
|
|
78
|
-
const ctx = this.mockContext(data, {
|
|
79
|
-
mockCtxStorage: false,
|
|
80
|
-
reuseCtxStorage: false,
|
|
81
|
-
});
|
|
82
|
-
return await this.ctxStorage.run(ctx, async () => {
|
|
83
|
-
return await fn(ctx);
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* mock cookie session
|
|
88
|
-
* @function App#mockSession
|
|
89
|
-
* @param {Object} data - session object
|
|
90
|
-
*/
|
|
91
|
-
mockSession(data) {
|
|
92
|
-
if (!data) {
|
|
93
|
-
return this;
|
|
94
|
-
}
|
|
95
|
-
if ((0, is_type_of_1.isObject)(data) && !('save' in data)) {
|
|
96
|
-
// keep session.save() work
|
|
97
|
-
Object.defineProperty(data, 'save', {
|
|
98
|
-
value: () => { },
|
|
99
|
-
enumerable: false,
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
(0, mm_1.mock)(this.context, 'session', data);
|
|
103
|
-
return this;
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Mock service
|
|
107
|
-
* @function App#mockService
|
|
108
|
-
* @param {String} service - name
|
|
109
|
-
* @param {String} methodName - method
|
|
110
|
-
* @param {Object|Function|Error} fn - mock you data
|
|
111
|
-
*/
|
|
112
|
-
mockService(service, methodName, fn) {
|
|
113
|
-
if (typeof service === 'string') {
|
|
114
|
-
const splits = service.split('.');
|
|
115
|
-
service = this.serviceClasses;
|
|
116
|
-
for (const key of splits) {
|
|
117
|
-
service = service[key];
|
|
118
|
-
}
|
|
119
|
-
service = service.prototype || service;
|
|
120
|
-
}
|
|
121
|
-
this._mockFn(service, methodName, fn);
|
|
122
|
-
return this;
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* mock service that return error
|
|
126
|
-
* @function App#mockServiceError
|
|
127
|
-
* @param {String} service - name
|
|
128
|
-
* @param {String} methodName - method
|
|
129
|
-
* @param {Error} [err] - error information
|
|
130
|
-
*/
|
|
131
|
-
mockServiceError(service, methodName, err) {
|
|
132
|
-
if (typeof err === 'string') {
|
|
133
|
-
err = new Error(err);
|
|
134
|
-
}
|
|
135
|
-
if (!err) {
|
|
136
|
-
// mockServiceError(service, methodName)
|
|
137
|
-
err = new Error(`mock ${methodName} error`);
|
|
138
|
-
}
|
|
139
|
-
this.mockService(service, methodName, err);
|
|
140
|
-
return this;
|
|
141
|
-
}
|
|
142
|
-
_mockFn(obj, name, data) {
|
|
143
|
-
const origin = obj[name];
|
|
144
|
-
(0, node_assert_1.default)(typeof origin === 'function', `property ${name} in original object must be function`);
|
|
145
|
-
// keep origin properties' type to support mock multi times
|
|
146
|
-
if (!obj[ORIGIN_TYPES])
|
|
147
|
-
obj[ORIGIN_TYPES] = {};
|
|
148
|
-
let type = obj[ORIGIN_TYPES][name];
|
|
149
|
-
if (!type) {
|
|
150
|
-
type = obj[ORIGIN_TYPES][name] = (0, is_type_of_1.isAsyncFunction)(origin) ? 'async' : 'sync';
|
|
151
|
-
}
|
|
152
|
-
if (typeof data === 'function') {
|
|
153
|
-
const fn = data;
|
|
154
|
-
// if original is async function
|
|
155
|
-
// but the mock function is normal function, need to change it return a promise
|
|
156
|
-
if (type === 'async' && !(0, is_type_of_1.isAsyncFunction)(fn)) {
|
|
157
|
-
(0, mm_1.mock)(obj, name, function (...args) {
|
|
158
|
-
return new Promise(resolve => {
|
|
159
|
-
resolve(fn.apply(this, args));
|
|
160
|
-
});
|
|
161
|
-
});
|
|
162
|
-
return;
|
|
163
|
-
}
|
|
164
|
-
(0, mm_1.mock)(obj, name, fn);
|
|
165
|
-
return;
|
|
166
|
-
}
|
|
167
|
-
if (type === 'async') {
|
|
168
|
-
(0, mm_1.mock)(obj, name, () => {
|
|
169
|
-
return new Promise((resolve, reject) => {
|
|
170
|
-
if (data instanceof Error)
|
|
171
|
-
return reject(data);
|
|
172
|
-
resolve(data);
|
|
173
|
-
});
|
|
174
|
-
});
|
|
175
|
-
return;
|
|
176
|
-
}
|
|
177
|
-
(0, mm_1.mock)(obj, name, () => {
|
|
178
|
-
if (data instanceof Error) {
|
|
179
|
-
throw data;
|
|
180
|
-
}
|
|
181
|
-
return data;
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* mock request
|
|
186
|
-
* @function App#mockRequest
|
|
187
|
-
* @param {Request} req - mock request
|
|
188
|
-
*/
|
|
189
|
-
mockRequest(req) {
|
|
190
|
-
req = { ...req };
|
|
191
|
-
const headers = req.headers ?? {};
|
|
192
|
-
for (const key in req.headers) {
|
|
193
|
-
headers[key.toLowerCase()] = req.headers[key];
|
|
194
|
-
}
|
|
195
|
-
if (!headers['x-forwarded-for']) {
|
|
196
|
-
headers['x-forwarded-for'] = '127.0.0.1';
|
|
197
|
-
}
|
|
198
|
-
headers['x-mock-request-from'] = '@eggjs/mock';
|
|
199
|
-
req.headers = headers;
|
|
200
|
-
(0, merge_descriptors_1.default)(req, {
|
|
201
|
-
query: {},
|
|
202
|
-
querystring: '',
|
|
203
|
-
host: '127.0.0.1',
|
|
204
|
-
hostname: '127.0.0.1',
|
|
205
|
-
protocol: 'http',
|
|
206
|
-
secure: 'false',
|
|
207
|
-
method: 'GET',
|
|
208
|
-
url: '/',
|
|
209
|
-
path: '/',
|
|
210
|
-
socket: {
|
|
211
|
-
remoteAddress: '127.0.0.1',
|
|
212
|
-
remotePort: 7001,
|
|
213
|
-
},
|
|
214
|
-
});
|
|
215
|
-
return req;
|
|
216
|
-
}
|
|
217
|
-
/**
|
|
218
|
-
* mock cookies
|
|
219
|
-
* @function App#mockCookies
|
|
220
|
-
*/
|
|
221
|
-
mockCookies(cookies) {
|
|
222
|
-
if (!cookies) {
|
|
223
|
-
return this;
|
|
224
|
-
}
|
|
225
|
-
const createContext = this.createContext;
|
|
226
|
-
(0, mm_1.mock)(this, 'createContext', function (req, res) {
|
|
227
|
-
const ctx = createContext.call(this, req, res);
|
|
228
|
-
const getCookie = ctx.cookies.get;
|
|
229
|
-
(0, mm_1.mock)(ctx.cookies, 'get', function (key, opts) {
|
|
230
|
-
if (cookies[key]) {
|
|
231
|
-
return cookies[key];
|
|
232
|
-
}
|
|
233
|
-
return getCookie.call(this, key, opts);
|
|
234
|
-
});
|
|
235
|
-
return ctx;
|
|
236
|
-
});
|
|
237
|
-
return this;
|
|
238
|
-
}
|
|
239
|
-
/**
|
|
240
|
-
* mock header
|
|
241
|
-
* @function App#mockHeaders
|
|
242
|
-
*/
|
|
243
|
-
mockHeaders(headers) {
|
|
244
|
-
if (!headers) {
|
|
245
|
-
return this;
|
|
246
|
-
}
|
|
247
|
-
const getHeader = this.request.get;
|
|
248
|
-
(0, mm_1.mock)(this.request, 'get', function (field) {
|
|
249
|
-
const value = findHeaders(headers, field);
|
|
250
|
-
if (value)
|
|
251
|
-
return value;
|
|
252
|
-
return getHeader.call(this, field);
|
|
253
|
-
});
|
|
254
|
-
return this;
|
|
255
|
-
}
|
|
256
|
-
/**
|
|
257
|
-
* mock csrf
|
|
258
|
-
* @function App#mockCsrf
|
|
259
|
-
* @since 1.11
|
|
260
|
-
*/
|
|
261
|
-
mockCsrf() {
|
|
262
|
-
(0, mm_1.mock)(this.context, 'assertCSRF', () => { });
|
|
263
|
-
(0, mm_1.mock)(this.context, 'assertCsrf', () => { });
|
|
264
|
-
return this;
|
|
265
|
-
}
|
|
266
|
-
/**
|
|
267
|
-
* mock httpclient
|
|
268
|
-
* @alias mockHttpClient
|
|
269
|
-
* @function App#mockHttpclient
|
|
270
|
-
*/
|
|
271
|
-
mockHttpclient(mockUrl, mockMethod, mockResult) {
|
|
272
|
-
return this.mockHttpClient(mockUrl, mockMethod, mockResult);
|
|
273
|
-
}
|
|
274
|
-
/**
|
|
275
|
-
* mock httpclient
|
|
276
|
-
* @function App#mockHttpClient
|
|
277
|
-
*/
|
|
278
|
-
mockHttpClient(mockUrl, mockMethod, mockResult) {
|
|
279
|
-
if (!this._mockHttpClient) {
|
|
280
|
-
this._mockHttpClient = (0, mock_httpclient_js_1.createMockHttpClient)(this);
|
|
281
|
-
}
|
|
282
|
-
this._mockHttpClient(mockUrl, mockMethod, mockResult);
|
|
283
|
-
return this;
|
|
284
|
-
}
|
|
285
|
-
/**
|
|
286
|
-
* @deprecated Please use app.mockHttpClient instead of app.mockUrllib
|
|
287
|
-
*/
|
|
288
|
-
mockUrllib(mockUrl, mockMethod, mockResult) {
|
|
289
|
-
this.deprecate('[@eggjs/mock] Please use app.mockHttpClient instead of app.mockUrllib');
|
|
290
|
-
return this.mockHttpClient(mockUrl, mockMethod, mockResult);
|
|
291
|
-
}
|
|
292
|
-
/**
|
|
293
|
-
* get mock httpclient agent
|
|
294
|
-
* @function App#mockHttpclientAgent
|
|
295
|
-
*/
|
|
296
|
-
mockAgent() {
|
|
297
|
-
return (0, mock_agent_js_1.getMockAgent)(this);
|
|
298
|
-
}
|
|
299
|
-
async mockAgentRestore() {
|
|
300
|
-
await (0, mock_agent_js_1.restoreMockAgent)();
|
|
301
|
-
}
|
|
302
|
-
/**
|
|
303
|
-
* @see mm#restore
|
|
304
|
-
* @function App#mockRestore
|
|
305
|
-
*/
|
|
306
|
-
async mockRestore() {
|
|
307
|
-
await this.mockAgentRestore();
|
|
308
|
-
(0, mm_1.restore)();
|
|
309
|
-
}
|
|
310
|
-
/**
|
|
311
|
-
* @see mm
|
|
312
|
-
* @function App#mm
|
|
313
|
-
*/
|
|
314
|
-
get mm() {
|
|
315
|
-
return mm_1.mock;
|
|
316
|
-
}
|
|
317
|
-
/**
|
|
318
|
-
* override loadAgent
|
|
319
|
-
* @function App#loadAgent
|
|
320
|
-
*/
|
|
321
|
-
loadAgent() { }
|
|
322
|
-
/**
|
|
323
|
-
* mock serverEnv
|
|
324
|
-
* @function App#mockEnv
|
|
325
|
-
* @param {String} env - serverEnv
|
|
326
|
-
*/
|
|
327
|
-
mockEnv(env) {
|
|
328
|
-
(0, mm_1.mock)(this.config, 'env', env);
|
|
329
|
-
(0, mm_1.mock)(this.config, 'serverEnv', env);
|
|
330
|
-
debug('mock env: %o', env);
|
|
331
|
-
return this;
|
|
332
|
-
}
|
|
333
|
-
/**
|
|
334
|
-
* http request helper
|
|
335
|
-
* @function App#httpRequest
|
|
336
|
-
* @return {SupertestRequest} req - supertest request
|
|
337
|
-
* @see https://github.com/visionmedia/supertest
|
|
338
|
-
*/
|
|
339
|
-
httpRequest() {
|
|
340
|
-
return (0, supertest_js_1.request)(this);
|
|
341
|
-
}
|
|
342
|
-
/**
|
|
343
|
-
* collection logger message, then can be use on `expectLog()`
|
|
344
|
-
* @param {String|Logger} [logger] - logger instance, default is `app.logger`
|
|
345
|
-
* @function App#mockLog
|
|
346
|
-
*/
|
|
347
|
-
mockLog(logger) {
|
|
348
|
-
logger = logger ?? this.logger;
|
|
349
|
-
if (typeof logger === 'string') {
|
|
350
|
-
logger = this.getLogger(logger);
|
|
351
|
-
}
|
|
352
|
-
// make sure mock once
|
|
353
|
-
if ('_mockLogs' in logger && logger._mockLogs)
|
|
354
|
-
return;
|
|
355
|
-
const transport = new egg_logger_1.Transport(logger.options);
|
|
356
|
-
// https://github.com/eggjs/egg-logger/blob/master/lib/logger.js#L64
|
|
357
|
-
const log = logger.log;
|
|
358
|
-
const mockLogs = [];
|
|
359
|
-
(0, mm_1.mock)(logger, '_mockLogs', mockLogs);
|
|
360
|
-
(0, mm_1.mock)(logger, 'log', (level, args, meta) => {
|
|
361
|
-
const message = transport.log(level, args, meta);
|
|
362
|
-
mockLogs.push(message);
|
|
363
|
-
log.apply(logger, [level, args, meta]);
|
|
364
|
-
});
|
|
365
|
-
}
|
|
366
|
-
__checkExpectLog(expectOrNot, str, logger) {
|
|
367
|
-
logger = logger || this.logger;
|
|
368
|
-
if (typeof logger === 'string') {
|
|
369
|
-
logger = this.getLogger(logger);
|
|
370
|
-
}
|
|
371
|
-
const filepath = logger.options.file;
|
|
372
|
-
let content;
|
|
373
|
-
if ('_mockLogs' in logger && logger._mockLogs) {
|
|
374
|
-
content = logger._mockLogs.join('\n');
|
|
375
|
-
}
|
|
376
|
-
else {
|
|
377
|
-
content = node_fs_1.default.readFileSync(filepath, 'utf8');
|
|
378
|
-
}
|
|
379
|
-
let match;
|
|
380
|
-
let type;
|
|
381
|
-
if (str instanceof RegExp) {
|
|
382
|
-
match = str.test(content);
|
|
383
|
-
type = 'RegExp';
|
|
384
|
-
}
|
|
385
|
-
else {
|
|
386
|
-
match = content.includes(String(str));
|
|
387
|
-
type = 'String';
|
|
388
|
-
}
|
|
389
|
-
if (expectOrNot) {
|
|
390
|
-
(0, node_assert_1.default)(match, `Can't find ${type}:"${str}" in ${filepath}, log content: ...${content.substring(content.length - 500)}`);
|
|
391
|
-
}
|
|
392
|
-
else {
|
|
393
|
-
(0, node_assert_1.default)(!match, `Find ${type}:"${str}" in ${filepath}, log content: ...${content.substring(content.length - 500)}`);
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
/**
|
|
397
|
-
* expect str/regexp in the logger, if your server disk is slow, please call `mockLog()` first.
|
|
398
|
-
* @param {String|RegExp} str - test str or regexp
|
|
399
|
-
* @param {String|Logger} [logger] - logger instance, default is `ctx.logger`
|
|
400
|
-
* @function App#expectLog
|
|
401
|
-
*/
|
|
402
|
-
expectLog(str, logger) {
|
|
403
|
-
this.__checkExpectLog(true, str, logger);
|
|
404
|
-
}
|
|
405
|
-
/**
|
|
406
|
-
* not expect str/regexp in the logger, if your server disk is slow, please call `mockLog()` first.
|
|
407
|
-
* @param {String|RegExp} str - test str or regexp
|
|
408
|
-
* @param {String|Logger} [logger] - logger instance, default is `ctx.logger`
|
|
409
|
-
* @function App#notExpectLog
|
|
410
|
-
*/
|
|
411
|
-
notExpectLog(str, logger) {
|
|
412
|
-
this.__checkExpectLog(false, str, logger);
|
|
413
|
-
}
|
|
414
|
-
async backgroundTasksFinished() {
|
|
415
|
-
const tasks = this._backgroundTasks;
|
|
416
|
-
debug('waiting %d background tasks', tasks.length);
|
|
417
|
-
if (tasks.length === 0)
|
|
418
|
-
return;
|
|
419
|
-
this._backgroundTasks = [];
|
|
420
|
-
await Promise.all(tasks);
|
|
421
|
-
debug('finished %d background tasks', tasks.length);
|
|
422
|
-
if (this._backgroundTasks.length) {
|
|
423
|
-
debug('new background tasks created: %s', this._backgroundTasks.length);
|
|
424
|
-
await this.backgroundTasksFinished();
|
|
425
|
-
}
|
|
426
|
-
}
|
|
427
|
-
get _backgroundTasks() {
|
|
428
|
-
if (!this[BACKGROUND_TASKS]) {
|
|
429
|
-
this[BACKGROUND_TASKS] = [];
|
|
430
|
-
}
|
|
431
|
-
return this[BACKGROUND_TASKS];
|
|
432
|
-
}
|
|
433
|
-
set _backgroundTasks(tasks) {
|
|
434
|
-
this[BACKGROUND_TASKS] = tasks;
|
|
435
|
-
}
|
|
436
|
-
}
|
|
437
|
-
exports.default = ApplicationUnittest;
|
|
438
|
-
function findHeaders(headers, key) {
|
|
439
|
-
if (!headers || !key) {
|
|
440
|
-
return null;
|
|
441
|
-
}
|
|
442
|
-
key = key.toLowerCase();
|
|
443
|
-
for (const headerKey in headers) {
|
|
444
|
-
if (key === headerKey.toLowerCase()) {
|
|
445
|
-
return headers[headerKey];
|
|
446
|
-
}
|
|
447
|
-
}
|
|
448
|
-
return null;
|
|
449
|
-
}
|
|
450
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2V4dGVuZC9hcHBsaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlDQUFxQztBQUNyQywwREFBa0Q7QUFDbEQsc0RBQXlCO0FBQ3pCLDhEQUFpQztBQUNqQywwRUFBaUQ7QUFDakQsMkNBQXVEO0FBQ3ZELDJCQUFtQztBQUVuQywyQ0FBd0U7QUFDeEUsc0NBQTJGO0FBRTNGLDJEQUF5RTtBQUN6RSxxRUFJc0M7QUFDdEMseURBQXFGO0FBR3JGLE1BQU0sS0FBSyxHQUFHLElBQUEsb0JBQVEsRUFBQyxvQ0FBb0MsQ0FBQyxDQUFDO0FBRTdELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0FBQ3ZELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLDZCQUE2QixDQUFDLENBQUM7QUFDL0QsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUF1Qm5ELE1BQThCLG1CQUFvQixTQUFRLGNBQU87SUFHL0QsZUFBZSxDQUF3QjtJQUd2Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQW1CRztJQUNILFdBQVcsQ0FBQyxJQUFzQixFQUFFLE9BQTRCO1FBQzlELElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2xCLFNBQVMsV0FBVyxDQUFDLEdBQW9CO1lBQ3ZDLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO2dCQUNoQyxJQUFBLFNBQUksRUFBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzFDLElBQUEsU0FBSSxFQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxD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
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const node_util_1 = require("node:util");
|
|
4
|
-
const debug = (0, node_util_1.debuglog)('@eggjs/mock/app/middleware/cluster_app_mock');
|
|
5
|
-
exports.default = () => {
|
|
6
|
-
return async function clusterAppMock(ctx, next) {
|
|
7
|
-
// use originalUrl to make sure other middlewares can't change request url
|
|
8
|
-
if (ctx.originalUrl !== '/__egg_mock_call_function') {
|
|
9
|
-
return next();
|
|
10
|
-
}
|
|
11
|
-
const body = ctx.request.body;
|
|
12
|
-
debug('%s %s, body: %j', ctx.method, ctx.url, body);
|
|
13
|
-
const { method, property, args, needResult } = body;
|
|
14
|
-
if (!method) {
|
|
15
|
-
ctx.status = 422;
|
|
16
|
-
ctx.body = {
|
|
17
|
-
success: false,
|
|
18
|
-
error: 'Missing method',
|
|
19
|
-
};
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
if (args && !Array.isArray(args)) {
|
|
23
|
-
ctx.status = 422;
|
|
24
|
-
ctx.body = {
|
|
25
|
-
success: false,
|
|
26
|
-
error: 'args should be an Array instance',
|
|
27
|
-
};
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
if (property) {
|
|
31
|
-
// method: '__getter__' and property: 'config'
|
|
32
|
-
if (method === '__getter__') {
|
|
33
|
-
if (!ctx.app[property]) {
|
|
34
|
-
debug('property %s not exists on app', property);
|
|
35
|
-
ctx.status = 422;
|
|
36
|
-
ctx.body = {
|
|
37
|
-
success: false,
|
|
38
|
-
error: `property "${property}" not exists on app`,
|
|
39
|
-
};
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
ctx.body = { success: true, result: ctx.app[property] };
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
if (!ctx.app[property] || typeof ctx.app[property][method] !== 'function') {
|
|
46
|
-
debug('property %s.%s not exists on app', property, method);
|
|
47
|
-
ctx.status = 422;
|
|
48
|
-
ctx.body = {
|
|
49
|
-
success: false,
|
|
50
|
-
error: `method "${method}" not exists on app.${property}`,
|
|
51
|
-
};
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
if (typeof ctx.app[method] !== 'function') {
|
|
57
|
-
debug('method %s not exists on app', method);
|
|
58
|
-
ctx.status = 422;
|
|
59
|
-
ctx.body = {
|
|
60
|
-
success: false,
|
|
61
|
-
error: `method "${method}" not exists on app`,
|
|
62
|
-
};
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
debug('call %s with %j', method, args);
|
|
67
|
-
for (let i = 0; i < args.length; i++) {
|
|
68
|
-
const arg = args[i];
|
|
69
|
-
if (arg && typeof arg === 'object') {
|
|
70
|
-
// convert __egg_mock_type back to function
|
|
71
|
-
if (arg.__egg_mock_type === 'function') {
|
|
72
|
-
// eslint-disable-next-line
|
|
73
|
-
args[i] = eval(`(function() { return ${arg.value} })()`);
|
|
74
|
-
}
|
|
75
|
-
else if (arg.__egg_mock_type === 'error') {
|
|
76
|
-
const err = new Error(arg.message);
|
|
77
|
-
err.name = arg.name;
|
|
78
|
-
err.stack = arg.stack;
|
|
79
|
-
for (const key in arg) {
|
|
80
|
-
if (key !== 'name' && key !== 'message' && key !== 'stack' && key !== '__egg_mock_type') {
|
|
81
|
-
err[key] = arg[key];
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
args[i] = err;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
const target = property ? ctx.app[property] : ctx.app;
|
|
89
|
-
const fn = target[method];
|
|
90
|
-
try {
|
|
91
|
-
Promise.resolve(fn.call(target, ...args)).then(result => {
|
|
92
|
-
ctx.body = needResult ? { success: true, result } : { success: true };
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
catch (err) {
|
|
96
|
-
ctx.status = 500;
|
|
97
|
-
ctx.body = { success: false, error: err.message };
|
|
98
|
-
}
|
|
99
|
-
};
|
|
100
|
-
};
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3Rlcl9hcHBfbW9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvbWlkZGxld2FyZS9jbHVzdGVyX2FwcF9tb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUNBQXFDO0FBR3JDLE1BQU0sS0FBSyxHQUFHLElBQUEsb0JBQVEsRUFBQyw2Q0FBNkMsQ0FBQyxDQUFDO0FBRXRFLGtCQUFlLEdBQUcsRUFBRTtJQUNsQixPQUFPLEtBQUssVUFBVSxjQUFjLENBQUMsR0FBWSxFQUFFLElBQVU7UUFDM0QsMEVBQTBFO1FBQzFFLElBQUksR0FBRyxDQUFDLFdBQVcsS0FBSywyQkFBMkIsRUFBRSxDQUFDO1lBQ3BELE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDaEIsQ0FBQztRQUNELE1BQU0sSUFBSSxHQUFJLEdBQUcsQ0FBQyxPQUFlLENBQUMsSUFBSSxDQUFDO1FBQ3ZDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQztRQUNwRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztZQUNqQixHQUFHLENBQUMsSUFBSSxHQUFHO2dCQUNULE9BQU8sRUFBRSxLQUFLO2dCQUNkLEtBQUssRUFBRSxnQkFBZ0I7YUFDeEIsQ0FBQztZQUNGLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDakMsR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7WUFDakIsR0FBRyxDQUFDLElBQUksR0FBRztnQkFDVCxPQUFPLEVBQUUsS0FBSztn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
|
package/dist/commonjs/app.d.ts
DELETED
package/dist/commonjs/app.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
class Boot {
|
|
4
|
-
#app;
|
|
5
|
-
constructor(app) {
|
|
6
|
-
this.#app = app;
|
|
7
|
-
}
|
|
8
|
-
configWillLoad() {
|
|
9
|
-
// make sure clusterAppMock position before securities
|
|
10
|
-
const index = this.#app.config.coreMiddleware.indexOf('securities');
|
|
11
|
-
if (index >= 0) {
|
|
12
|
-
this.#app.config.coreMiddleware.splice(index, 0, 'clusterAppMock');
|
|
13
|
-
}
|
|
14
|
-
else {
|
|
15
|
-
this.#app.config.coreMiddleware.push('clusterAppMock');
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
exports.default = Boot;
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLE1BQXFCLElBQUk7SUFDdkIsSUFBSSxDQUFVO0lBQ2QsWUFBWSxHQUFZO1FBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxjQUFjO1FBQ1osc0RBQXNEO1FBQ3RELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEUsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNyRSxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBZkQsdUJBZUMifQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { strict as assert } from 'node:assert';
|
|
2
|
-
import mm, { mock, MockApplication } from './index.js';
|
|
3
|
-
import { getBootstrapApp } from './lib/app_handler.js';
|
|
4
|
-
declare const app: MockApplication;
|
|
5
|
-
export { assert, getBootstrapApp, app, mm, mock, MockApplication, };
|