@eggjs/mock 6.0.0-beta.3
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/LICENSE +21 -0
- package/README.md +547 -0
- package/README.zh_CN.md +512 -0
- package/dist/commonjs/app/extend/agent.d.ts +33 -0
- package/dist/commonjs/app/extend/agent.js +49 -0
- package/dist/commonjs/app/extend/application.d.ts +175 -0
- package/dist/commonjs/app/extend/application.js +448 -0
- package/dist/commonjs/app/middleware/cluster_app_mock.d.ts +3 -0
- package/dist/commonjs/app/middleware/cluster_app_mock.js +100 -0
- package/dist/commonjs/app.d.ts +6 -0
- package/dist/commonjs/app.js +20 -0
- package/dist/commonjs/bootstrap.d.ts +4 -0
- package/dist/commonjs/bootstrap.js +58 -0
- package/dist/commonjs/index.d.ts +76 -0
- package/dist/commonjs/index.js +99 -0
- package/dist/commonjs/index.test-d.d.ts +1 -0
- package/dist/commonjs/index.test-d.js +43 -0
- package/dist/commonjs/lib/agent_handler.d.ts +3 -0
- package/dist/commonjs/lib/agent_handler.js +28 -0
- package/dist/commonjs/lib/app.d.ts +28 -0
- package/dist/commonjs/lib/app.js +303 -0
- package/dist/commonjs/lib/app_handler.d.ts +5 -0
- package/dist/commonjs/lib/app_handler.js +67 -0
- package/dist/commonjs/lib/cluster.d.ts +114 -0
- package/dist/commonjs/lib/cluster.js +337 -0
- package/dist/commonjs/lib/context.d.ts +1 -0
- package/dist/commonjs/lib/context.js +16 -0
- package/dist/commonjs/lib/format_options.d.ts +5 -0
- package/dist/commonjs/lib/format_options.js +100 -0
- package/dist/commonjs/lib/inject_context.d.ts +6 -0
- package/dist/commonjs/lib/inject_context.js +132 -0
- package/dist/commonjs/lib/mock_agent.d.ts +5 -0
- package/dist/commonjs/lib/mock_agent.js +49 -0
- package/dist/commonjs/lib/mock_custom_loader.d.ts +1 -0
- package/dist/commonjs/lib/mock_custom_loader.js +37 -0
- package/dist/commonjs/lib/mock_http_server.d.ts +2 -0
- package/dist/commonjs/lib/mock_http_server.js +24 -0
- package/dist/commonjs/lib/mock_httpclient.d.ts +35 -0
- package/dist/commonjs/lib/mock_httpclient.js +147 -0
- package/dist/commonjs/lib/parallel/agent.d.ts +20 -0
- package/dist/commonjs/lib/parallel/agent.js +125 -0
- package/dist/commonjs/lib/parallel/app.d.ts +20 -0
- package/dist/commonjs/lib/parallel/app.js +115 -0
- package/dist/commonjs/lib/parallel/util.d.ts +3 -0
- package/dist/commonjs/lib/parallel/util.js +77 -0
- package/dist/commonjs/lib/prerequire.d.ts +1 -0
- package/dist/commonjs/lib/prerequire.js +26 -0
- package/dist/commonjs/lib/request_call_function.d.ts +1 -0
- package/dist/commonjs/lib/request_call_function.js +52 -0
- package/dist/commonjs/lib/restore.d.ts +1 -0
- package/dist/commonjs/lib/restore.js +16 -0
- package/dist/commonjs/lib/start-cluster.d.ts +2 -0
- package/dist/commonjs/lib/start-cluster.js +23 -0
- package/dist/commonjs/lib/supertest.d.ts +11 -0
- package/dist/commonjs/lib/supertest.js +48 -0
- package/dist/commonjs/lib/tmp/empty.d.ts +1 -0
- package/dist/commonjs/lib/tmp/empty.js +3 -0
- package/dist/commonjs/lib/types.d.ts +60 -0
- package/dist/commonjs/lib/types.js +3 -0
- package/dist/commonjs/lib/utils.d.ts +9 -0
- package/dist/commonjs/lib/utils.js +80 -0
- package/dist/commonjs/package.json +3 -0
- package/dist/commonjs/register.d.ts +8 -0
- package/dist/commonjs/register.js +80 -0
- package/dist/esm/app/extend/agent.d.ts +33 -0
- package/dist/esm/app/extend/agent.js +46 -0
- package/dist/esm/app/extend/application.d.ts +175 -0
- package/dist/esm/app/extend/application.js +442 -0
- package/dist/esm/app/middleware/cluster_app_mock.d.ts +3 -0
- package/dist/esm/app/middleware/cluster_app_mock.js +98 -0
- package/dist/esm/app.d.ts +6 -0
- package/dist/esm/app.js +17 -0
- package/dist/esm/bootstrap.d.ts +4 -0
- package/dist/esm/bootstrap.js +16 -0
- package/dist/esm/index.d.ts +76 -0
- package/dist/esm/index.js +90 -0
- package/dist/esm/index.test-d.d.ts +1 -0
- package/dist/esm/index.test-d.js +42 -0
- package/dist/esm/lib/agent_handler.d.ts +3 -0
- package/dist/esm/lib/agent_handler.js +24 -0
- package/dist/esm/lib/app.d.ts +28 -0
- package/dist/esm/lib/app.js +295 -0
- package/dist/esm/lib/app_handler.d.ts +5 -0
- package/dist/esm/lib/app_handler.js +61 -0
- package/dist/esm/lib/cluster.d.ts +114 -0
- package/dist/esm/lib/cluster.js +328 -0
- package/dist/esm/lib/context.d.ts +1 -0
- package/dist/esm/lib/context.js +13 -0
- package/dist/esm/lib/format_options.d.ts +5 -0
- package/dist/esm/lib/format_options.js +94 -0
- package/dist/esm/lib/inject_context.d.ts +6 -0
- package/dist/esm/lib/inject_context.js +126 -0
- package/dist/esm/lib/mock_agent.d.ts +5 -0
- package/dist/esm/lib/mock_agent.js +45 -0
- package/dist/esm/lib/mock_custom_loader.d.ts +1 -0
- package/dist/esm/lib/mock_custom_loader.js +34 -0
- package/dist/esm/lib/mock_http_server.d.ts +2 -0
- package/dist/esm/lib/mock_http_server.js +18 -0
- package/dist/esm/lib/mock_httpclient.d.ts +35 -0
- package/dist/esm/lib/mock_httpclient.js +144 -0
- package/dist/esm/lib/parallel/agent.d.ts +20 -0
- package/dist/esm/lib/parallel/agent.js +117 -0
- package/dist/esm/lib/parallel/app.d.ts +20 -0
- package/dist/esm/lib/parallel/app.js +110 -0
- package/dist/esm/lib/parallel/util.d.ts +3 -0
- package/dist/esm/lib/parallel/util.js +73 -0
- package/dist/esm/lib/prerequire.d.ts +1 -0
- package/dist/esm/lib/prerequire.js +25 -0
- package/dist/esm/lib/request_call_function.d.ts +1 -0
- package/dist/esm/lib/request_call_function.js +47 -0
- package/dist/esm/lib/restore.d.ts +1 -0
- package/dist/esm/lib/restore.js +13 -0
- package/dist/esm/lib/start-cluster.d.ts +2 -0
- package/dist/esm/lib/start-cluster.js +18 -0
- package/dist/esm/lib/supertest.d.ts +11 -0
- package/dist/esm/lib/supertest.js +40 -0
- package/dist/esm/lib/tmp/empty.d.ts +1 -0
- package/dist/esm/lib/tmp/empty.js +2 -0
- package/dist/esm/lib/types.d.ts +60 -0
- package/dist/esm/lib/types.js +2 -0
- package/dist/esm/lib/utils.d.ts +9 -0
- package/dist/esm/lib/utils.js +69 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/register.d.ts +8 -0
- package/dist/esm/register.js +75 -0
- package/dist/package.json +4 -0
- package/package.json +131 -0
- package/src/app/extend/agent.ts +56 -0
- package/src/app/extend/application.ts +512 -0
- package/src/app/middleware/cluster_app_mock.ts +101 -0
- package/src/app.ts +18 -0
- package/src/bootstrap.ts +25 -0
- package/src/index.d.ts +193 -0
- package/src/index.test-d.ts +47 -0
- package/src/index.ts +110 -0
- package/src/lib/agent_handler.ts +28 -0
- package/src/lib/app.ts +313 -0
- package/src/lib/app_handler.ts +69 -0
- package/src/lib/cluster.ts +363 -0
- package/src/lib/context.ts +14 -0
- package/src/lib/format_options.ts +103 -0
- package/src/lib/inject_context.ts +134 -0
- package/src/lib/mock_agent.ts +57 -0
- package/src/lib/mock_custom_loader.ts +36 -0
- package/src/lib/mock_http_server.ts +19 -0
- package/src/lib/mock_httpclient.ts +181 -0
- package/src/lib/parallel/agent.ts +128 -0
- package/src/lib/parallel/app.ts +123 -0
- package/src/lib/parallel/util.ts +66 -0
- package/src/lib/prerequire.ts +25 -0
- package/src/lib/request_call_function.ts +49 -0
- package/src/lib/restore.ts +14 -0
- package/src/lib/start-cluster.ts +23 -0
- package/src/lib/supertest.ts +45 -0
- package/src/lib/tmp/.gitkeep +0 -0
- package/src/lib/tmp/empty.ts +0 -0
- package/src/lib/types.ts +72 -0
- package/src/lib/utils.ts +82 -0
- package/src/register.ts +80 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { debuglog } from 'node:util';
|
|
2
|
+
const debug = debuglog('@eggjs/mock/app/middleware/cluster_app_mock');
|
|
3
|
+
export default () => {
|
|
4
|
+
return async function clusterAppMock(ctx, next) {
|
|
5
|
+
// use originalUrl to make sure other middlewares can't change request url
|
|
6
|
+
if (ctx.originalUrl !== '/__egg_mock_call_function') {
|
|
7
|
+
return next();
|
|
8
|
+
}
|
|
9
|
+
debug('%s %s, body: %j', ctx.method, ctx.url, ctx.request.body);
|
|
10
|
+
const { method, property, args, needResult } = ctx.request.body;
|
|
11
|
+
if (!method) {
|
|
12
|
+
ctx.status = 422;
|
|
13
|
+
ctx.body = {
|
|
14
|
+
success: false,
|
|
15
|
+
error: 'Missing method',
|
|
16
|
+
};
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
if (args && !Array.isArray(args)) {
|
|
20
|
+
ctx.status = 422;
|
|
21
|
+
ctx.body = {
|
|
22
|
+
success: false,
|
|
23
|
+
error: 'args should be an Array instance',
|
|
24
|
+
};
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (property) {
|
|
28
|
+
// method: '__getter__' and property: 'config'
|
|
29
|
+
if (method === '__getter__') {
|
|
30
|
+
if (!ctx.app[property]) {
|
|
31
|
+
debug('property %s not exists on app', property);
|
|
32
|
+
ctx.status = 422;
|
|
33
|
+
ctx.body = {
|
|
34
|
+
success: false,
|
|
35
|
+
error: `property "${property}" not exists on app`,
|
|
36
|
+
};
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
ctx.body = { success: true, result: ctx.app[property] };
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (!ctx.app[property] || typeof ctx.app[property][method] !== 'function') {
|
|
43
|
+
debug('property %s.%s not exists on app', property, method);
|
|
44
|
+
ctx.status = 422;
|
|
45
|
+
ctx.body = {
|
|
46
|
+
success: false,
|
|
47
|
+
error: `method "${method}" not exists on app.${property}`,
|
|
48
|
+
};
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
if (typeof ctx.app[method] !== 'function') {
|
|
54
|
+
debug('method %s not exists on app', method);
|
|
55
|
+
ctx.status = 422;
|
|
56
|
+
ctx.body = {
|
|
57
|
+
success: false,
|
|
58
|
+
error: `method "${method}" not exists on app`,
|
|
59
|
+
};
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
debug('call %s with %j', method, args);
|
|
64
|
+
for (let i = 0; i < args.length; i++) {
|
|
65
|
+
const arg = args[i];
|
|
66
|
+
if (arg && typeof arg === 'object') {
|
|
67
|
+
// convert __egg_mock_type back to function
|
|
68
|
+
if (arg.__egg_mock_type === 'function') {
|
|
69
|
+
// eslint-disable-next-line
|
|
70
|
+
args[i] = eval(`(function() { return ${arg.value} })()`);
|
|
71
|
+
}
|
|
72
|
+
else if (arg.__egg_mock_type === 'error') {
|
|
73
|
+
const err = new Error(arg.message);
|
|
74
|
+
err.name = arg.name;
|
|
75
|
+
err.stack = arg.stack;
|
|
76
|
+
for (const key in arg) {
|
|
77
|
+
if (key !== 'name' && key !== 'message' && key !== 'stack' && key !== '__egg_mock_type') {
|
|
78
|
+
err[key] = arg[key];
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
args[i] = err;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
const target = property ? ctx.app[property] : ctx.app;
|
|
86
|
+
const fn = target[method];
|
|
87
|
+
try {
|
|
88
|
+
Promise.resolve(fn.call(target, ...args)).then(result => {
|
|
89
|
+
ctx.body = needResult ? { success: true, result } : { success: true };
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
ctx.status = 500;
|
|
94
|
+
ctx.body = { success: false, error: err.message };
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3Rlcl9hcHBfbW9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvbWlkZGxld2FyZS9jbHVzdGVyX2FwcF9tb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHckMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLDZDQUE2QyxDQUFDLENBQUM7QUFFdEUsZUFBZSxHQUFHLEVBQUU7SUFDbEIsT0FBTyxLQUFLLFVBQVUsY0FBYyxDQUFDLEdBQXNCLEVBQUUsSUFBVTtRQUNyRSwwRUFBMEU7UUFDMUUsSUFBSSxHQUFHLENBQUMsV0FBVyxLQUFLLDJCQUEyQixFQUFFLENBQUM7WUFDcEQsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNoQixDQUFDO1FBQ0QsS0FBSyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztRQUNoRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztZQUNqQixHQUFHLENBQUMsSUFBSSxHQUFHO2dCQUNULE9BQU8sRUFBRSxLQUFLO2dCQUNkLEtBQUssRUFBRSxnQkFBZ0I7YUFDeEIsQ0FBQztZQUNGLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDakMsR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7WUFDakIsR0FBRyxDQUFDLElBQUksR0FBRztnQkFDVCxPQUFPLEVB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
|
package/dist/esm/app.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export default class Boot {
|
|
2
|
+
#app;
|
|
3
|
+
constructor(app) {
|
|
4
|
+
this.#app = app;
|
|
5
|
+
}
|
|
6
|
+
configWillLoad() {
|
|
7
|
+
// make sure clusterAppMock position before securities
|
|
8
|
+
const index = this.#app.config.coreMiddleware.indexOf('securities');
|
|
9
|
+
if (index >= 0) {
|
|
10
|
+
this.#app.config.coreMiddleware.splice(index, 0, 'clusterAppMock');
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
this.#app.config.coreMiddleware.push('clusterAppMock');
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsT0FBTyxPQUFPLElBQUk7SUFDdkIsSUFBSSxDQUFVO0lBQ2QsWUFBWSxHQUFZO1FBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxjQUFjO1FBQ1osc0RBQXNEO1FBQ3RELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEUsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNyRSxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQztDQUNGIn0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { strict as assert } from 'node:assert';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { readJSONSync } from 'utility';
|
|
4
|
+
import mm, { mock } from './index.js';
|
|
5
|
+
import { getBootstrapApp, setupApp } from './lib/app_handler.js';
|
|
6
|
+
import { getEggOptions } from './lib/utils.js';
|
|
7
|
+
const options = getEggOptions();
|
|
8
|
+
// throw error when an egg plugin test is using bootstrap
|
|
9
|
+
const pkgInfo = readJSONSync(path.join(options.baseDir || process.cwd(), 'package.json'));
|
|
10
|
+
if (pkgInfo.eggPlugin) {
|
|
11
|
+
throw new Error('DO NOT USE bootstrap to test plugin');
|
|
12
|
+
}
|
|
13
|
+
setupApp();
|
|
14
|
+
const app = getBootstrapApp();
|
|
15
|
+
export { assert, app, mm, mock, };
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jvb3RzdHJhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFDN0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN2QyxPQUFPLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvQyxNQUFNLE9BQU8sR0FBRyxhQUFhLEVBQUUsQ0FBQztBQUVoQyx5REFBeUQ7QUFDekQsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztBQUMxRixJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7QUFDekQsQ0FBQztBQUVELFFBQVEsRUFBRSxDQUFDO0FBRVgsTUFBTSxHQUFHLEdBQUcsZUFBZSxFQUFFLENBQUM7QUFFOUIsT0FBTyxFQUNMLE1BQU0sRUFDTixHQUFHLEVBQ0gsRUFBRSxFQUNGLElBQUksR0FDTCxDQUFDIn0=
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { mock as _mock } from 'mm';
|
|
2
|
+
import { createCluster } from './lib/cluster.js';
|
|
3
|
+
import { createApp } from './lib/app.js';
|
|
4
|
+
import { restore } from './lib/restore.js';
|
|
5
|
+
import { setGetAppCallback } from './lib/app_handler.js';
|
|
6
|
+
import ApplicationUnittest from './app/extend/application.js';
|
|
7
|
+
declare const mock: {
|
|
8
|
+
restore: typeof restore;
|
|
9
|
+
/**
|
|
10
|
+
* Create a egg mocked application
|
|
11
|
+
* @function mm#app
|
|
12
|
+
* @param {Object} [options]
|
|
13
|
+
* - {String} baseDir - The directory of the application
|
|
14
|
+
* - {Object} plugins - Custom you plugins
|
|
15
|
+
* - {String} framework - The directory of the egg framework
|
|
16
|
+
* - {Boolean} [true] cache - Cache application based on baseDir
|
|
17
|
+
* - {Boolean} [true] coverage - Switch on process coverage, but it'll be slower
|
|
18
|
+
* - {Boolean} [true] clean - Remove $baseDir/logs
|
|
19
|
+
* @return {App} return {@link Application}
|
|
20
|
+
* @example
|
|
21
|
+
* ```js
|
|
22
|
+
* const app = mm.app();
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
app: typeof createApp;
|
|
26
|
+
/**
|
|
27
|
+
* Create a egg mocked cluster application
|
|
28
|
+
* @function mm#cluster
|
|
29
|
+
* @see ClusterApplication
|
|
30
|
+
*/
|
|
31
|
+
cluster: typeof createCluster;
|
|
32
|
+
/**
|
|
33
|
+
* mock the serverEnv of Egg
|
|
34
|
+
* @member {Function} mm#env
|
|
35
|
+
* @param {String} env - contain default, test, prod, local, unittest
|
|
36
|
+
* @see https://github.com/eggjs/egg-core/blob/master/lib/loader/egg_loader.js#L78
|
|
37
|
+
*/
|
|
38
|
+
env(env: string): void;
|
|
39
|
+
/**
|
|
40
|
+
* mock console level
|
|
41
|
+
* @param {String} level - logger level
|
|
42
|
+
*/
|
|
43
|
+
consoleLevel(level: string): void;
|
|
44
|
+
home(homePath?: string): void;
|
|
45
|
+
setGetAppCallback: typeof setGetAppCallback;
|
|
46
|
+
isMocked: typeof import("mm").isMocked;
|
|
47
|
+
mock: typeof _mock;
|
|
48
|
+
mm: typeof _mock;
|
|
49
|
+
datas: typeof import("mm").datas;
|
|
50
|
+
mockDatas: typeof import("mm").datas;
|
|
51
|
+
data: typeof import("mm").data;
|
|
52
|
+
mockData: typeof import("mm").data;
|
|
53
|
+
dataWithAsyncDispose: typeof import("mm").dataWithAsyncDispose;
|
|
54
|
+
empty: typeof import("mm").empty;
|
|
55
|
+
mockEmpty: typeof import("mm").empty;
|
|
56
|
+
error: typeof import("mm").error;
|
|
57
|
+
mockError: typeof import("mm").error;
|
|
58
|
+
spy: typeof import("mm").spy;
|
|
59
|
+
errorOnce: typeof import("mm").errorOnce;
|
|
60
|
+
syncError: typeof import("mm").syncError;
|
|
61
|
+
syncEmpty: typeof import("mm").syncEmpty;
|
|
62
|
+
syncData: typeof import("mm").syncData;
|
|
63
|
+
http: {
|
|
64
|
+
request: (url: import("mm").RequestURL, data: import("mm").ResponseData, headers?: Record<string, any>, delay?: number) => void;
|
|
65
|
+
requestError: (url: import("mm").RequestURL, reqError?: import("mm").MockError, resError?: import("mm").MockError, delay?: number) => void;
|
|
66
|
+
};
|
|
67
|
+
https: {
|
|
68
|
+
request: (url: import("mm").RequestURL, data: import("mm").ResponseData, headers?: Record<string, any>, delay?: number) => void;
|
|
69
|
+
requestError: (url: import("mm").RequestURL, reqError?: import("mm").MockError, resError?: import("mm").MockError, delay?: number) => void;
|
|
70
|
+
};
|
|
71
|
+
spawn: typeof import("mm").spawn;
|
|
72
|
+
classMethod: typeof import("mm").classMethod;
|
|
73
|
+
};
|
|
74
|
+
declare const proxyMock: ((target: any, property: PropertyKey, value?: any) => void) & typeof mock;
|
|
75
|
+
export default proxyMock;
|
|
76
|
+
export { proxyMock as mock, proxyMock as mm, ApplicationUnittest as MockApplication, setGetAppCallback, createApp, createCluster, };
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import mm from 'mm';
|
|
2
|
+
import { mock as _mock } from 'mm';
|
|
3
|
+
import { createCluster } from './lib/cluster.js';
|
|
4
|
+
import { createApp } from './lib/app.js';
|
|
5
|
+
// import { getMockAgent } from './lib/mock_agent.js';
|
|
6
|
+
import { restore } from './lib/restore.js';
|
|
7
|
+
import { setGetAppCallback } from './lib/app_handler.js';
|
|
8
|
+
import ApplicationUnittest from './app/extend/application.js';
|
|
9
|
+
// egg-bin will set this flag to require files for instrument
|
|
10
|
+
// if (process.env.EGG_BIN_PREREQUIRE) {
|
|
11
|
+
// require('./lib/prerequire');
|
|
12
|
+
// }
|
|
13
|
+
// inherit & extends mm
|
|
14
|
+
const mock = {
|
|
15
|
+
...mm,
|
|
16
|
+
restore,
|
|
17
|
+
/**
|
|
18
|
+
* Create a egg mocked application
|
|
19
|
+
* @function mm#app
|
|
20
|
+
* @param {Object} [options]
|
|
21
|
+
* - {String} baseDir - The directory of the application
|
|
22
|
+
* - {Object} plugins - Custom you plugins
|
|
23
|
+
* - {String} framework - The directory of the egg framework
|
|
24
|
+
* - {Boolean} [true] cache - Cache application based on baseDir
|
|
25
|
+
* - {Boolean} [true] coverage - Switch on process coverage, but it'll be slower
|
|
26
|
+
* - {Boolean} [true] clean - Remove $baseDir/logs
|
|
27
|
+
* @return {App} return {@link Application}
|
|
28
|
+
* @example
|
|
29
|
+
* ```js
|
|
30
|
+
* const app = mm.app();
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
app: createApp,
|
|
34
|
+
/**
|
|
35
|
+
* Create a egg mocked cluster application
|
|
36
|
+
* @function mm#cluster
|
|
37
|
+
* @see ClusterApplication
|
|
38
|
+
*/
|
|
39
|
+
cluster: createCluster,
|
|
40
|
+
/**
|
|
41
|
+
* mock the serverEnv of Egg
|
|
42
|
+
* @member {Function} mm#env
|
|
43
|
+
* @param {String} env - contain default, test, prod, local, unittest
|
|
44
|
+
* @see https://github.com/eggjs/egg-core/blob/master/lib/loader/egg_loader.js#L78
|
|
45
|
+
*/
|
|
46
|
+
env(env) {
|
|
47
|
+
_mock(process.env, 'EGG_MOCK_SERVER_ENV', env);
|
|
48
|
+
_mock(process.env, 'EGG_SERVER_ENV', env);
|
|
49
|
+
},
|
|
50
|
+
/**
|
|
51
|
+
* mock console level
|
|
52
|
+
* @param {String} level - logger level
|
|
53
|
+
*/
|
|
54
|
+
consoleLevel(level) {
|
|
55
|
+
level = (level || '').toUpperCase();
|
|
56
|
+
_mock(process.env, 'EGG_LOG', level);
|
|
57
|
+
},
|
|
58
|
+
home(homePath) {
|
|
59
|
+
if (homePath) {
|
|
60
|
+
_mock(process.env, 'EGG_HOME', homePath);
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
setGetAppCallback,
|
|
64
|
+
};
|
|
65
|
+
// import mm from '@eggjs/mock';
|
|
66
|
+
const proxyMock = new Proxy(_mock, {
|
|
67
|
+
apply(target, _, args) {
|
|
68
|
+
return target(args[0], args[1], args[2]);
|
|
69
|
+
},
|
|
70
|
+
get(_target, property, receiver) {
|
|
71
|
+
// import mm from '@eggjs/mock';
|
|
72
|
+
// mm.isMocked(foo, 'bar')
|
|
73
|
+
return Reflect.get(mock, property, receiver);
|
|
74
|
+
},
|
|
75
|
+
});
|
|
76
|
+
export default proxyMock;
|
|
77
|
+
export { proxyMock as mock,
|
|
78
|
+
// alias to mm
|
|
79
|
+
proxyMock as mm, ApplicationUnittest as MockApplication, setGetAppCallback, createApp, createCluster, };
|
|
80
|
+
process.setMaxListeners(100);
|
|
81
|
+
process.once('SIGQUIT', () => {
|
|
82
|
+
process.exit(0);
|
|
83
|
+
});
|
|
84
|
+
process.once('SIGTERM', () => {
|
|
85
|
+
process.exit(0);
|
|
86
|
+
});
|
|
87
|
+
process.once('SIGINT', () => {
|
|
88
|
+
process.exit(0);
|
|
89
|
+
});
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pDLHNEQUFzRDtBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxtQkFBbUIsTUFBTSw2QkFBNkIsQ0FBQztBQUU5RCw2REFBNkQ7QUFDN0Qsd0NBQXdDO0FBQ3hDLGlDQUFpQztBQUNqQyxJQUFJO0FBRUosdUJBQXVCO0FBQ3ZCLE1BQU0sSUFBSSxHQUFHO0lBQ1gsR0FBRyxFQUFFO0lBQ0wsT0FBTztJQUVQOzs7Ozs7Ozs7Ozs7Ozs7T0FlRztJQUNILEdBQUcsRUFBRSxTQUFTO0lBRWQ7Ozs7T0FJRztJQUNILE9BQU8sRUFBRSxhQUFhO0lBRXRCOzs7OztPQUtHO0lBQ0gsR0FBRyxDQUFDLEdBQVc7UUFDYixLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsWUFBWSxDQUFDLEtBQWE7UUFDeEIsS0FBSyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxDQUFDLFFBQWlCO1FBQ3BCLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0MsQ0FBQztJQUNILENBQUM7SUFFRCxpQkFBaUI7Q0FDbEIsQ0FBQztBQUVGLGdDQUFnQztBQUNoQyxNQUFNLFNBQVMsR0FBRyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUU7SUFDakMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSTtRQUNuQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxHQUFHLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRO1FBQzdCLGdDQUFnQztRQUNoQywwQkFBMEI7UUFDMUIsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDL0MsQ0FBQztDQUNGLENBQXlGLENBQUM7QUFFM0YsZUFBZSxTQUFTLENBQUM7QUFFekIsT0FBTyxFQUNMLFNBQVMsSUFBSSxJQUFJO0FBQ2pCLGNBQWM7QUFDZCxTQUFTLElBQUksRUFBRSxFQUNmLG1CQUFtQixJQUFJLGVBQWUsRUFDdEMsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxhQUFhLEdBQ2QsQ0FBQztBQUVGLE9BQU8sQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFN0IsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO0lBQzNCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQyxDQUFDLENBQUM7QUFFSCxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7SUFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDLENBQUMsQ0FBQztBQUVILE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtJQUMxQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLENBQUMsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// import { expectType } from 'tsd';
|
|
2
|
+
// import { Application, Context } from 'egg';
|
|
3
|
+
// import { MockApplication, MockAgent, ResultObject } from '.';
|
|
4
|
+
// import { app, mock, mm } from './bootstrap';
|
|
5
|
+
export {};
|
|
6
|
+
// expectType<MockApplication>(app);
|
|
7
|
+
// expectType<Context>(app.currentContext);
|
|
8
|
+
// expectType<Context | undefined>(app.ctxStorage.getStore());
|
|
9
|
+
// expectType<MockApplication>(mock.app());
|
|
10
|
+
// expectType<MockApplication>(mm.app());
|
|
11
|
+
// expectType<MockAgent>(mm.app().mockAgent());
|
|
12
|
+
// expectType<Application>(mm.app().mockHttpclient('url', 'post', { data: 'ok' }));
|
|
13
|
+
// expectType<Application>(mm.app().mockHttpclient('url', 'post', 'data'));
|
|
14
|
+
// expectType<Application>(mm.app().mockHttpclient('url', {
|
|
15
|
+
// data: 'mock response',
|
|
16
|
+
// repeats: 1,
|
|
17
|
+
// }));
|
|
18
|
+
// expectType<Application>(mm.app().mockHttpclient('url', () => {}));
|
|
19
|
+
// expectType<Application>(mm.app().mockHttpclient('url', 'post', () => {}));
|
|
20
|
+
// expectType<Application>(mm.app().mockHttpclient('url', 'get', {
|
|
21
|
+
// data: 'mock response',
|
|
22
|
+
// repeats: 1,
|
|
23
|
+
// }));
|
|
24
|
+
// expectType<void>(app.mockLog());
|
|
25
|
+
// expectType<void>(app.mockLog('logger'));
|
|
26
|
+
// expectType<void>(app.mockLog(app.logger));
|
|
27
|
+
// expectType<void>(app.expectLog('foo string'));
|
|
28
|
+
// expectType<void>(app.expectLog('foo string', 'coreLogger'));
|
|
29
|
+
// expectType<void>(app.expectLog('foo string', app.coreLogger));
|
|
30
|
+
// expectType<void>(app.expectLog(/foo string/));
|
|
31
|
+
// expectType<void>(app.expectLog(/foo string/, 'coreLogger'));
|
|
32
|
+
// expectType<void>(app.expectLog(/foo string/, app.coreLogger));
|
|
33
|
+
// expectType<void>(mm.env('default'));
|
|
34
|
+
// expectType<void>(mm.env('devserver'));
|
|
35
|
+
// expectType<Promise<void>>(app.mockAgentRestore());
|
|
36
|
+
// expectType<Promise<void>>(app.mockRestore());
|
|
37
|
+
// expectType<Promise<void>>(app.mockContextScope(async () => {}));
|
|
38
|
+
// expectType<Promise<void>>(app.mockContextScope(async ctx => {}));
|
|
39
|
+
// expectType<Promise<void>>(app.backgroundTasksFinished());
|
|
40
|
+
// const result: ResultObject = {};
|
|
41
|
+
// expectType<number>(result.status!);
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC1kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luZGV4LnRlc3QtZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7QUFDcEMsOENBQThDO0FBQzlDLGdFQUFnRTtBQUNoRSwrQ0FBK0M7O0FBRS9DLG9DQUFvQztBQUNwQywyQ0FBMkM7QUFDM0MsOERBQThEO0FBQzlELDJDQUEyQztBQUMzQyx5Q0FBeUM7QUFFekMsK0NBQStDO0FBRS9DLG1GQUFtRjtBQUNuRiwyRUFBMkU7QUFDM0UsMkRBQTJEO0FBQzNELDJCQUEyQjtBQUMzQixnQkFBZ0I7QUFDaEIsT0FBTztBQUNQLHFFQUFxRTtBQUNyRSw2RUFBNkU7QUFDN0Usa0VBQWtFO0FBQ2xFLDJCQUEyQjtBQUMzQixnQkFBZ0I7QUFDaEIsT0FBTztBQUVQLG1DQUFtQztBQUNuQywyQ0FBMkM7QUFDM0MsNkNBQTZDO0FBQzdDLGlEQUFpRDtBQUNqRCwrREFBK0Q7QUFDL0QsaUVBQWlFO0FBQ2pFLGlEQUFpRDtBQUNqRCwrREFBK0Q7QUFDL0QsaUVBQWlFO0FBQ2pFLHVDQUF1QztBQUN2Qyx5Q0FBeUM7QUFFekMscURBQXFEO0FBQ3JELGdEQUFnRDtBQUNoRCxtRUFBbUU7QUFDbkUsb0VBQW9FO0FBRXBFLDREQUE0RDtBQUU1RCxtQ0FBbUM7QUFDbkMsc0NBQXNDIn0=
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { debuglog } from 'node:util';
|
|
2
|
+
import { createAgent } from './parallel/agent.js';
|
|
3
|
+
import { getEggOptions } from './utils.js';
|
|
4
|
+
const debug = debuglog('@eggjs/mock/lib/agent_handler');
|
|
5
|
+
let agent;
|
|
6
|
+
export async function setupAgent() {
|
|
7
|
+
debug('setupAgent call, env.ENABLE_MOCHA_PARALLEL: %s, process.env.AUTO_AGENT: %s, agent: %s', process.env.ENABLE_MOCHA_PARALLEL, process.env.AUTO_AGENT, !!agent);
|
|
8
|
+
if (agent) {
|
|
9
|
+
await agent.ready();
|
|
10
|
+
return agent;
|
|
11
|
+
}
|
|
12
|
+
if (process.env.ENABLE_MOCHA_PARALLEL && process.env.AUTO_AGENT) {
|
|
13
|
+
agent = createAgent(getEggOptions());
|
|
14
|
+
await agent.ready();
|
|
15
|
+
}
|
|
16
|
+
return agent;
|
|
17
|
+
}
|
|
18
|
+
export async function closeAgent() {
|
|
19
|
+
debug('setupAgent call, agent: %s', !!agent);
|
|
20
|
+
if (agent) {
|
|
21
|
+
await agent.close();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnRfaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYWdlbnRfaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxXQUFXLEVBQWEsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTNDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0FBRXhELElBQUksS0FBZ0IsQ0FBQztBQUVyQixNQUFNLENBQUMsS0FBSyxVQUFVLFVBQVU7SUFDOUIsS0FBSyxDQUFDLHVGQUF1RixFQUMzRixPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1YsTUFBTSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEUsS0FBSyxHQUFHLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLFVBQVU7SUFDOUIsS0FBSyxDQUFDLDRCQUE0QixFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1YsTUFBTSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQztBQUNILENBQUMifQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Base } from 'sdk-base';
|
|
2
|
+
import type { Agent, Application } from 'egg';
|
|
3
|
+
import type { MockOptions, MockApplicationOptions } from './types.js';
|
|
4
|
+
declare const APP_INIT: unique symbol;
|
|
5
|
+
export declare class MockApplication extends Base {
|
|
6
|
+
#private;
|
|
7
|
+
_agent: Agent;
|
|
8
|
+
_app: Application;
|
|
9
|
+
options: MockApplicationOptions;
|
|
10
|
+
baseDir: string;
|
|
11
|
+
[APP_INIT]: boolean;
|
|
12
|
+
_initOnListeners: Set<any[]>;
|
|
13
|
+
_initOnceListeners: Set<any[]>;
|
|
14
|
+
constructor(options: MockApplicationOptions);
|
|
15
|
+
_init(): Promise<void>;
|
|
16
|
+
on(...args: any[]): this;
|
|
17
|
+
once(...args: any[]): this;
|
|
18
|
+
/**
|
|
19
|
+
* close app
|
|
20
|
+
*/
|
|
21
|
+
_close(): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* @deprecated please use isClosed instead, keep compatible with old version
|
|
24
|
+
*/
|
|
25
|
+
get closed(): boolean;
|
|
26
|
+
}
|
|
27
|
+
export declare function createApp(createOptions?: MockOptions): any;
|
|
28
|
+
export {};
|