@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,132 +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
|
-
exports.injectContext = injectContext;
|
|
7
|
-
const node_util_1 = require("node:util");
|
|
8
|
-
const node_assert_1 = __importDefault(require("node:assert"));
|
|
9
|
-
const app_handler_js_1 = require("./app_handler.js");
|
|
10
|
-
const MOCHA_SUITE_APP = Symbol.for('mocha#suite#app');
|
|
11
|
-
const debug = (0, node_util_1.debuglog)('@eggjs/mock/lib/inject_context');
|
|
12
|
-
/**
|
|
13
|
-
* Monkey patch the mocha instance with egg context.
|
|
14
|
-
*
|
|
15
|
-
* @param {Function} mocha - the module of mocha
|
|
16
|
-
*/
|
|
17
|
-
function injectContext(mocha) {
|
|
18
|
-
if (mocha._injectContextLoaded) {
|
|
19
|
-
debug('mocha already injected context, skip it');
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
const { Runner } = mocha;
|
|
23
|
-
const runSuite = Runner.prototype.runSuite;
|
|
24
|
-
const runTests = Runner.prototype.runTests;
|
|
25
|
-
function getTestTitle(suite, test) {
|
|
26
|
-
const suiteTitle = suite.root ? 'root suite' : suite.title;
|
|
27
|
-
if (!test) {
|
|
28
|
-
return `"${suiteTitle}"`;
|
|
29
|
-
}
|
|
30
|
-
return `"${suiteTitle} - ${test.title}"`;
|
|
31
|
-
}
|
|
32
|
-
// Inject ctx for before/after.
|
|
33
|
-
Runner.prototype.runSuite = async function (suite, fn) {
|
|
34
|
-
debug('run suite: %s', suite.title);
|
|
35
|
-
let app;
|
|
36
|
-
const self = this;
|
|
37
|
-
try {
|
|
38
|
-
app = await (0, app_handler_js_1.getApp)(suite);
|
|
39
|
-
debug('get app: %s', !!app);
|
|
40
|
-
await app.ready();
|
|
41
|
-
}
|
|
42
|
-
catch {
|
|
43
|
-
// 可能 app.ready 时报错,不使用失败的 app
|
|
44
|
-
app = null;
|
|
45
|
-
}
|
|
46
|
-
if (!app) {
|
|
47
|
-
// app 不存在,直接跳过,在 beforeEach 的 hook 中会报错
|
|
48
|
-
// 确保不打乱 mocha 的顺序,防止 mocha 内部状态错误
|
|
49
|
-
return runSuite.call(self, suite, fn);
|
|
50
|
-
}
|
|
51
|
-
let errSuite;
|
|
52
|
-
try {
|
|
53
|
-
suite.ctx[MOCHA_SUITE_APP] = app;
|
|
54
|
-
const mockContextFun = app.mockModuleContextScope || app.mockContextScope;
|
|
55
|
-
await mockContextFun.call(app, async function () {
|
|
56
|
-
await new Promise(resolve => {
|
|
57
|
-
runSuite.call(self, suite, (aErrSuite) => {
|
|
58
|
-
errSuite = aErrSuite;
|
|
59
|
-
resolve();
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
catch (err) {
|
|
65
|
-
// mockContext 失败后动态注册一个 beforeAll hook
|
|
66
|
-
// 快速失败,直接阻塞后续用例
|
|
67
|
-
suite.beforeAll('egg-mock-mock-ctx-failed', async () => {
|
|
68
|
-
throw err;
|
|
69
|
-
});
|
|
70
|
-
return runSuite.call(self, suite, (aErrSuite) => {
|
|
71
|
-
return fn(aErrSuite);
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
return fn(errSuite);
|
|
75
|
-
};
|
|
76
|
-
// Inject ctx for beforeEach/it/afterEach.
|
|
77
|
-
// And ctx with before/after is not same as beforeEach/it/afterEach.
|
|
78
|
-
Runner.prototype.runTests = async function (suite, fn) {
|
|
79
|
-
const tests = suite.tests.slice();
|
|
80
|
-
if (!tests.length) {
|
|
81
|
-
return runTests.call(this, suite, fn);
|
|
82
|
-
}
|
|
83
|
-
const app = suite.ctx[MOCHA_SUITE_APP];
|
|
84
|
-
const self = this;
|
|
85
|
-
if (!app) {
|
|
86
|
-
return runTests.call(self, suite, fn);
|
|
87
|
-
}
|
|
88
|
-
function done(errSuite) {
|
|
89
|
-
suite.tests = tests;
|
|
90
|
-
return fn(errSuite);
|
|
91
|
-
}
|
|
92
|
-
async function next(i) {
|
|
93
|
-
const test = tests[i];
|
|
94
|
-
if (!test) {
|
|
95
|
-
return done();
|
|
96
|
-
}
|
|
97
|
-
suite.tests = [test];
|
|
98
|
-
let app;
|
|
99
|
-
try {
|
|
100
|
-
app = await (0, app_handler_js_1.getApp)(suite, test);
|
|
101
|
-
(0, node_assert_1.default)(app, `not found app for test ${getTestTitle(suite, test)}`);
|
|
102
|
-
await app.ready();
|
|
103
|
-
}
|
|
104
|
-
catch (err) {
|
|
105
|
-
self.fail(test, err);
|
|
106
|
-
return next(i + 1);
|
|
107
|
-
}
|
|
108
|
-
try {
|
|
109
|
-
const mockContextFun = app.mockModuleContextScope || app.mockContextScope;
|
|
110
|
-
await mockContextFun.call(app, async function () {
|
|
111
|
-
return await new Promise(resolve => {
|
|
112
|
-
runTests.call(self, suite, () => {
|
|
113
|
-
return resolve();
|
|
114
|
-
});
|
|
115
|
-
});
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
catch (err) {
|
|
119
|
-
self.fail(test, err);
|
|
120
|
-
return next(i + 1);
|
|
121
|
-
}
|
|
122
|
-
return next(i + 1);
|
|
123
|
-
}
|
|
124
|
-
next(0).catch(err => {
|
|
125
|
-
self.fail(suite, err);
|
|
126
|
-
done(suite);
|
|
127
|
-
});
|
|
128
|
-
};
|
|
129
|
-
mocha._injectContextLoaded = true;
|
|
130
|
-
debug('inject context success');
|
|
131
|
-
}
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0X2NvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luamVjdF9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBYUEsc0NBd0hDO0FBcklELHlDQUFxQztBQUNyQyw4REFBaUM7QUFDakMscURBQTBDO0FBRTFDLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUV0RCxNQUFNLEtBQUssR0FBRyxJQUFBLG9CQUFRLEVBQUMsZ0NBQWdDLENBQUMsQ0FBQztBQUV6RDs7OztHQUlHO0FBQ0gsU0FBZ0IsYUFBYSxDQUFDLEtBQVU7SUFDdEMsSUFBSSxLQUFLLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUMvQixLQUFLLENBQUMseUNBQXlDLENBQUMsQ0FBQztRQUNqRCxPQUFPO0lBQ1QsQ0FBQztJQUNELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDekIsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7SUFDM0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7SUFFM0MsU0FBUyxZQUFZLENBQUMsS0FBVSxFQUFFLElBQVM7UUFDekMsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzNELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE9BQU8sSUFBSSxVQUFVLEdBQUcsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxJQUFJLFVBQVUsTUFBTSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUM7SUFDM0MsQ0FBQztJQUVELCtCQUErQjtJQUMvQixNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxLQUFLLFdBQVUsS0FBVSxFQUFFLEVB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
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getMockAgent = getMockAgent;
|
|
4
|
-
exports.restoreMockAgent = restoreMockAgent;
|
|
5
|
-
const node_util_1 = require("node:util");
|
|
6
|
-
const urllib_1 = require("urllib");
|
|
7
|
-
const debug = (0, node_util_1.debuglog)('@eggjs/mock/lib/mock_agent');
|
|
8
|
-
globalThis.__mockAgent = null;
|
|
9
|
-
globalThis.__httpClientDispatchers = new Map();
|
|
10
|
-
function getMockAgent(app) {
|
|
11
|
-
debug('getMockAgent');
|
|
12
|
-
if (!globalThis.__globalDispatcher) {
|
|
13
|
-
globalThis.__globalDispatcher = (0, urllib_1.getGlobalDispatcher)();
|
|
14
|
-
debug('create global dispatcher');
|
|
15
|
-
}
|
|
16
|
-
if (app?.httpClient && !globalThis.__httpClientDispatchers.has(app.httpClient)) {
|
|
17
|
-
globalThis.__httpClientDispatchers.set(app.httpClient, app.httpClient.getDispatcher());
|
|
18
|
-
debug('add new httpClient, size: %d', globalThis.__httpClientDispatchers.size);
|
|
19
|
-
}
|
|
20
|
-
if (!globalThis.__mockAgent) {
|
|
21
|
-
globalThis.__mockAgent = new urllib_1.MockAgent();
|
|
22
|
-
(0, urllib_1.setGlobalDispatcher)(globalThis.__mockAgent);
|
|
23
|
-
if (typeof app?.httpClient?.setDispatcher === 'function') {
|
|
24
|
-
app.httpClient.setDispatcher(globalThis.__mockAgent);
|
|
25
|
-
}
|
|
26
|
-
debug('create new mockAgent');
|
|
27
|
-
}
|
|
28
|
-
return globalThis.__mockAgent;
|
|
29
|
-
}
|
|
30
|
-
async function restoreMockAgent() {
|
|
31
|
-
debug('restoreMockAgent start');
|
|
32
|
-
if (globalThis.__globalDispatcher) {
|
|
33
|
-
(0, urllib_1.setGlobalDispatcher)(globalThis.__globalDispatcher);
|
|
34
|
-
debug('restore global dispatcher');
|
|
35
|
-
}
|
|
36
|
-
debug('restore httpClient, size: %d', globalThis.__httpClientDispatchers.size);
|
|
37
|
-
for (const [httpClient, dispatcher] of globalThis.__httpClientDispatchers) {
|
|
38
|
-
httpClient.setDispatcher(dispatcher);
|
|
39
|
-
}
|
|
40
|
-
globalThis.__httpClientDispatchers.clear();
|
|
41
|
-
if (globalThis.__mockAgent) {
|
|
42
|
-
const agent = globalThis.__mockAgent;
|
|
43
|
-
globalThis.__mockAgent = null;
|
|
44
|
-
await agent.close();
|
|
45
|
-
debug('close mockAgent');
|
|
46
|
-
}
|
|
47
|
-
debug('restoreMockAgent end');
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19hZ2VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbW9ja19hZ2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlCQSxvQ0FtQkM7QUFFRCw0Q0FrQkM7QUF4REQseUNBQXFDO0FBQ3JDLG1DQUdnQjtBQUVoQixNQUFNLEtBQUssR0FBRyxJQUFBLG9CQUFRLEVBQUMsNEJBQTRCLENBQUMsQ0FBQztBQVFyRCxVQUFVLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztBQUM5QixVQUFVLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxHQUFHLEVBQTBCLENBQUM7QUFFdkUsU0FBZ0IsWUFBWSxDQUFDLEdBQWlDO0lBQzVELEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDbkMsVUFBVSxDQUFDLGtCQUFrQixHQUFHLElBQUEsNEJBQW1CLEdBQUUsQ0FBQztRQUN0RCxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsSUFBSSxHQUFHLEVBQUUsVUFBVSxJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUMvRSxVQUFVLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZGLEtBQUssQ0FBQyw4QkFBOEIsRUFBRSxVQUFVLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUNELElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDNUIsVUFBVSxDQUFDLFdBQVcsR0FBRyxJQUFJLGtCQUFTLEVBQUUsQ0FBQztRQUN6QyxJQUFBLDRCQUFtQixFQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1QyxJQUFJLE9BQU8sR0FBRyxFQUFFLFVBQVUsRUFBRSxhQUFhLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDekQsR0FBRyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFDRCxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsT0FBTyxVQUFVLENBQUMsV0FBVyxDQUFDO0FBQ2hDLENBQUM7QUFFTSxLQUFLLFVBQVUsZ0JBQWdCO0lBQ3BDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQ2hDLElBQUksVUFBVSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDbEMsSUFBQSw0QkFBbUIsRUFBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNuRCxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsS0FBSyxDQUFDLDhCQUE4QixFQUFFLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRSxLQUFLLE1BQU0sQ0FBRSxVQUFVLEVBQUUsVUFBVSxDQUFFLElBQUksVUFBVSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDNUUsVUFBVSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsVUFBVSxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNDLElBQUksVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzNCLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUM7UUFDckMsVUFBVSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDOUIsTUFBTSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDcEIsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUNELEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBQ2hDLENBQUMifQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function setCustomLoader(app: any): void;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setCustomLoader = setCustomLoader;
|
|
4
|
-
const node_util_1 = require("node:util");
|
|
5
|
-
const debug = (0, node_util_1.debuglog)('@eggjs/mock/lib/mock_custom_loader');
|
|
6
|
-
function setCustomLoader(app) {
|
|
7
|
-
const customLoader = app.config.customLoader;
|
|
8
|
-
if (!customLoader)
|
|
9
|
-
return;
|
|
10
|
-
for (const field of Object.keys(customLoader)) {
|
|
11
|
-
const loaderConfig = Object.assign({}, customLoader[field]);
|
|
12
|
-
loaderConfig.field = field;
|
|
13
|
-
addMethod(loaderConfig);
|
|
14
|
-
}
|
|
15
|
-
function addMethod(loaderConfig) {
|
|
16
|
-
const field = loaderConfig.field;
|
|
17
|
-
const appMethodName = 'mock' + field.replace(/^[a-z]/i, s => s.toUpperCase());
|
|
18
|
-
if (app[appMethodName]) {
|
|
19
|
-
app.coreLogger.warn('Can\'t override app.%s', appMethodName);
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
debug('[addMethod] %s => %j', appMethodName, loaderConfig);
|
|
23
|
-
app[appMethodName] = function (service, methodName, fn) {
|
|
24
|
-
if (typeof service === 'string') {
|
|
25
|
-
const arr = service.split('.');
|
|
26
|
-
service = loaderConfig.inject === 'ctx' ? this[field + 'Classes'] : this[field];
|
|
27
|
-
for (const key of arr) {
|
|
28
|
-
service = service[key];
|
|
29
|
-
}
|
|
30
|
-
service = service.prototype || service;
|
|
31
|
-
}
|
|
32
|
-
this._mockFn(service, methodName, fn);
|
|
33
|
-
return this;
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19jdXN0b21fbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9tb2NrX2N1c3RvbV9sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSwwQ0ErQkM7QUFuQ0QseUNBQXFDO0FBRXJDLE1BQU0sS0FBSyxHQUFHLElBQUEsb0JBQVEsRUFBQyxvQ0FBb0MsQ0FBQyxDQUFDO0FBRTdELFNBQWdCLGVBQWUsQ0FBQyxHQUFRO0lBQ3RDLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO0lBQzdDLElBQUksQ0FBQyxZQUFZO1FBQUUsT0FBTztJQUUxQixLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztRQUM5QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM1RCxZQUFZLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUMzQixTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELFNBQVMsU0FBUyxDQUFDLFlBQWlCO1FBQ2xDLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxLQUFlLENBQUM7UUFDM0MsTUFBTSxhQUFhLEdBQUcsTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDOUUsSUFBSSxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUN2QixHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxhQUFhLENBQUMsQ0FBQztZQUM3RCxPQUFPO1FBQ1QsQ0FBQztRQUNELEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDM0QsR0FBRyxDQUFDLGFBQWEsQ0FBQyxHQUFHLFVBQVMsT0FBWSxFQUFFLFVBQWtCLEVBQUUsRUFBTztZQUNyRSxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNoQyxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMvQixPQUFPLEdBQUcsWUFBWSxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDaEYsS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztvQkFDdEIsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDekIsQ0FBQztnQkFDRCxPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUM7WUFDekMsQ0FBQztZQUNELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0QyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDIn0=
|
|
@@ -1,24 +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
|
-
exports.createServer = createServer;
|
|
7
|
-
const node_http_1 = __importDefault(require("node:http"));
|
|
8
|
-
const SERVER = Symbol('http_server');
|
|
9
|
-
function createServer(app) {
|
|
10
|
-
let server = app[SERVER] || app.callback();
|
|
11
|
-
if (typeof server === 'function') {
|
|
12
|
-
server = node_http_1.default.createServer(server);
|
|
13
|
-
// cache server, avoid create many times
|
|
14
|
-
app[SERVER] = server;
|
|
15
|
-
if (!app.server) {
|
|
16
|
-
app.server = server;
|
|
17
|
-
}
|
|
18
|
-
// emit server event just like egg-cluster does
|
|
19
|
-
// https://github.com/eggjs/egg-cluster/blob/master/lib/app_worker.js#L52
|
|
20
|
-
app.emit('server', server);
|
|
21
|
-
}
|
|
22
|
-
return server;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19odHRwX3NlcnZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbW9ja19odHRwX3NlcnZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUlBLG9DQWNDO0FBbEJELDBEQUF5QztBQUV6QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7QUFFckMsU0FBZ0IsWUFBWSxDQUFDLEdBQVE7SUFDbkMsSUFBSSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQyxJQUFJLE9BQU8sTUFBTSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sR0FBRyxtQkFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyx3Q0FBd0M7UUFDeEMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLEdBQUcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLENBQUM7UUFDRCwrQ0FBK0M7UUFDL0MseUVBQXlFO1FBQ3pFLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIn0=
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import type { Dispatcher, Headers, BodyInit } from 'urllib';
|
|
2
|
-
export interface MockResultOptions {
|
|
3
|
-
data: string | Buffer | Record<string, any>;
|
|
4
|
-
/**
|
|
5
|
-
* http status
|
|
6
|
-
*/
|
|
7
|
-
status?: number;
|
|
8
|
-
/**
|
|
9
|
-
* response header
|
|
10
|
-
*/
|
|
11
|
-
headers?: Record<string, string>;
|
|
12
|
-
/**
|
|
13
|
-
* delay the associated reply by a set amount in ms
|
|
14
|
-
*/
|
|
15
|
-
delay?: number;
|
|
16
|
-
/**
|
|
17
|
-
* any matching request will always reply with the defined response indefinitely
|
|
18
|
-
*/
|
|
19
|
-
persist?: boolean;
|
|
20
|
-
/**
|
|
21
|
-
* any matching request will reply with the defined response a fixed amount of times
|
|
22
|
-
*/
|
|
23
|
-
repeats?: number;
|
|
24
|
-
}
|
|
25
|
-
export type ResultObject = MockResultOptions;
|
|
26
|
-
export interface MockResponseCallbackOptions {
|
|
27
|
-
path: string;
|
|
28
|
-
method: string;
|
|
29
|
-
headers?: Headers | Record<string, string>;
|
|
30
|
-
origin?: string;
|
|
31
|
-
body?: BodyInit | Dispatcher.DispatchOptions['body'] | null;
|
|
32
|
-
maxRedirections?: number;
|
|
33
|
-
}
|
|
34
|
-
export type MockResultFunction = (url: string, options: MockResponseCallbackOptions) => MockResultOptions | string;
|
|
35
|
-
export declare function createMockHttpClient(app: any): (mockUrl: string | RegExp, mockMethod: string | string[] | MockResultOptions | MockResultFunction, mockResult?: MockResultOptions | MockResultFunction | string) => void;
|
|
36
|
-
export type MockHttpClientMethod = ReturnType<typeof createMockHttpClient>;
|
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createMockHttpClient = createMockHttpClient;
|
|
4
|
-
const mm_1 = require("mm");
|
|
5
|
-
const extend2_1 = require("extend2");
|
|
6
|
-
const mock_agent_js_1 = require("./mock_agent.js");
|
|
7
|
-
function normalizeResult(result) {
|
|
8
|
-
if (typeof result === 'string') {
|
|
9
|
-
result = { data: result };
|
|
10
|
-
}
|
|
11
|
-
if (!result.status) {
|
|
12
|
-
result.status = 200;
|
|
13
|
-
}
|
|
14
|
-
result.data = result.data || '';
|
|
15
|
-
if (Buffer.isBuffer(result.data)) {
|
|
16
|
-
// do nothing
|
|
17
|
-
}
|
|
18
|
-
else if (typeof result.data === 'object') {
|
|
19
|
-
// json
|
|
20
|
-
result.data = Buffer.from(JSON.stringify(result.data));
|
|
21
|
-
}
|
|
22
|
-
else if (typeof result.data === 'string') {
|
|
23
|
-
// string
|
|
24
|
-
result.data = Buffer.from(result.data);
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
throw new Error('`mockResult.data` must be buffer, string or json');
|
|
28
|
-
}
|
|
29
|
-
result.headers = result.headers ?? {};
|
|
30
|
-
return result;
|
|
31
|
-
}
|
|
32
|
-
const MOCK_CONFIGS = Symbol('MOCK_CONFIGS');
|
|
33
|
-
const MOCK_CONFIG_INDEX = Symbol('MOCK_CONFIG_INDEX');
|
|
34
|
-
function createMockHttpClient(app) {
|
|
35
|
-
/**
|
|
36
|
-
* mock httpclient
|
|
37
|
-
* @function mockHttpclient
|
|
38
|
-
* @param {String} mockUrl - url
|
|
39
|
-
* @param {String|Array} mockMethod - http method, default is '*'
|
|
40
|
-
* @param {Object|Function} mockResult - you data
|
|
41
|
-
* - data - buffer / string / json
|
|
42
|
-
* - status - http status
|
|
43
|
-
* - headers - response header
|
|
44
|
-
* - delay - delay the associated reply by a set amount in ms.
|
|
45
|
-
* - persist - any matching request will always reply with the defined response indefinitely, default is true
|
|
46
|
-
* - repeats - number, any matching request will reply with the defined response a fixed amount of times
|
|
47
|
-
*/
|
|
48
|
-
return function mockHttpClient(mockUrl, mockMethod, mockResult) {
|
|
49
|
-
let mockMethods = mockMethod;
|
|
50
|
-
if (!mockResult) {
|
|
51
|
-
// app.mockHttpclient(mockUrl, mockResult)
|
|
52
|
-
mockResult = mockMethod;
|
|
53
|
-
mockMethods = ['*'];
|
|
54
|
-
}
|
|
55
|
-
if (!Array.isArray(mockMethods)) {
|
|
56
|
-
mockMethods = [mockMethods];
|
|
57
|
-
}
|
|
58
|
-
mockMethods = mockMethods.map(method => (method || 'GET').toUpperCase());
|
|
59
|
-
// use MockAgent on undici
|
|
60
|
-
let mockConfigs = app[MOCK_CONFIGS];
|
|
61
|
-
if (!mockConfigs) {
|
|
62
|
-
mockConfigs = [];
|
|
63
|
-
(0, mm_1.mm)(app, MOCK_CONFIGS, mockConfigs);
|
|
64
|
-
}
|
|
65
|
-
let mockConfigIndex = -1;
|
|
66
|
-
let origin = mockUrl;
|
|
67
|
-
let originMethod;
|
|
68
|
-
const pathname = mockUrl;
|
|
69
|
-
let pathMethod;
|
|
70
|
-
if (typeof mockUrl === 'string') {
|
|
71
|
-
const urlObject = new URL(mockUrl);
|
|
72
|
-
origin = urlObject.origin;
|
|
73
|
-
const originalPathname = urlObject.pathname;
|
|
74
|
-
pathMethod = path => {
|
|
75
|
-
if (path === originalPathname)
|
|
76
|
-
return true;
|
|
77
|
-
// should match /foo?a=1 including query
|
|
78
|
-
if (path.includes('?'))
|
|
79
|
-
return path.startsWith(originalPathname);
|
|
80
|
-
return false;
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
else if (mockUrl instanceof RegExp) {
|
|
84
|
-
let requestOrigin = '';
|
|
85
|
-
originMethod = value => {
|
|
86
|
-
requestOrigin = value;
|
|
87
|
-
return true;
|
|
88
|
-
};
|
|
89
|
-
pathMethod = path => {
|
|
90
|
-
for (const config of mockConfigs) {
|
|
91
|
-
if (config.mockUrl.test(`${requestOrigin}${path}`)) {
|
|
92
|
-
(0, mm_1.mm)(app, MOCK_CONFIG_INDEX, config.mockConfigIndex);
|
|
93
|
-
return true;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
return false;
|
|
97
|
-
};
|
|
98
|
-
mockConfigIndex = mockConfigs.length;
|
|
99
|
-
mockConfigs.push({ mockUrl, mockResult, mockConfigIndex });
|
|
100
|
-
}
|
|
101
|
-
const mockPool = originMethod
|
|
102
|
-
? (0, mock_agent_js_1.getMockAgent)(app).get(originMethod)
|
|
103
|
-
: (0, mock_agent_js_1.getMockAgent)(app).get(originMethod ?? origin);
|
|
104
|
-
// persist default is true
|
|
105
|
-
let persist = true;
|
|
106
|
-
if (typeof mockResult === 'object' && typeof mockResult.persist === 'boolean') {
|
|
107
|
-
persist = mockResult.persist;
|
|
108
|
-
}
|
|
109
|
-
mockMethods.forEach(function (method) {
|
|
110
|
-
const mockScope = mockPool.intercept({
|
|
111
|
-
path: pathMethod ?? pathname,
|
|
112
|
-
method: method === '*' ? () => true : method,
|
|
113
|
-
}).reply(options => {
|
|
114
|
-
// not support mockResult as an async function
|
|
115
|
-
const requestUrl = `${options.origin}${options.path}`;
|
|
116
|
-
let mockRequestResult;
|
|
117
|
-
if (mockConfigIndex >= 0) {
|
|
118
|
-
mockResult = mockConfigs[app[MOCK_CONFIG_INDEX]].mockResult;
|
|
119
|
-
mockRequestResult = typeof mockResult === 'function' ? mockResult(requestUrl, options) : mockResult;
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
mockRequestResult = typeof mockResult === 'function' ? mockResult(requestUrl, options) : mockResult;
|
|
123
|
-
}
|
|
124
|
-
const result = (0, extend2_1.extend)(true, {}, normalizeResult(mockRequestResult));
|
|
125
|
-
return {
|
|
126
|
-
statusCode: result.status,
|
|
127
|
-
data: result.data,
|
|
128
|
-
responseOptions: {
|
|
129
|
-
headers: result.headers,
|
|
130
|
-
},
|
|
131
|
-
};
|
|
132
|
-
});
|
|
133
|
-
if (typeof mockResult === 'object') {
|
|
134
|
-
if (mockResult.delay && mockResult.delay > 0) {
|
|
135
|
-
mockScope.delay(mockResult.delay);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
if (persist) {
|
|
139
|
-
mockScope.persist();
|
|
140
|
-
}
|
|
141
|
-
else if (typeof mockResult === 'object' && mockResult.repeats && mockResult.repeats > 0) {
|
|
142
|
-
mockScope.times(mockResult.repeats);
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19odHRwY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9tb2NrX2h0dHBjbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF1RUEsb0RBNkdDO0FBcExELDJCQUF3QjtBQUN4QixxQ0FBaUM7QUFFakMsbURBQStDO0FBd0MvQyxTQUFTLGVBQWUsQ0FBQyxNQUFrQztJQUN6RCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQy9CLE1BQU0sR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNuQixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztJQUN0QixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUNoQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDakMsYUFBYTtJQUNmLENBQUM7U0FBTSxJQUFJLE9BQU8sTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUMzQyxPQUFPO1FBQ1AsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztTQUFNLElBQUksT0FBTyxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzNDLFNBQVM7UUFDVCxNQUFNLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0lBQ3RF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
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Base } from 'sdk-base';
|
|
2
|
-
import type { EggCore } from '@eggjs/core';
|
|
3
|
-
import { MockOptions, MockApplicationOptions } from '../types.js';
|
|
4
|
-
import { APP_INIT } from './util.js';
|
|
5
|
-
export declare class MockAgent extends Base {
|
|
6
|
-
#private;
|
|
7
|
-
options: MockApplicationOptions;
|
|
8
|
-
baseDir: string;
|
|
9
|
-
[APP_INIT]: boolean;
|
|
10
|
-
_instance: EggCore;
|
|
11
|
-
constructor(options: MockApplicationOptions);
|
|
12
|
-
_init(): Promise<void>;
|
|
13
|
-
on(...args: any[]): this;
|
|
14
|
-
once(...args: any[]): this;
|
|
15
|
-
/**
|
|
16
|
-
* close agent
|
|
17
|
-
*/
|
|
18
|
-
_close(): Promise<void>;
|
|
19
|
-
}
|
|
20
|
-
export declare function createAgent(options: MockOptions): MockAgent;
|
|
@@ -1,125 +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
|
-
exports.MockAgent = void 0;
|
|
7
|
-
exports.createAgent = createAgent;
|
|
8
|
-
const node_util_1 = require("node:util");
|
|
9
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
-
const sdk_base_1 = require("sdk-base");
|
|
11
|
-
const detect_port_1 = require("detect-port");
|
|
12
|
-
const utils_1 = require("@eggjs/utils");
|
|
13
|
-
const context_js_1 = require("../context.js");
|
|
14
|
-
const format_options_js_1 = require("../format_options.js");
|
|
15
|
-
const utils_js_1 = require("../utils.js");
|
|
16
|
-
const mock_custom_loader_js_1 = require("../mock_custom_loader.js");
|
|
17
|
-
const util_js_1 = require("./util.js");
|
|
18
|
-
const debug = (0, node_util_1.debuglog)('@eggjs/mock/lib/parallel/agent');
|
|
19
|
-
class MockAgent extends sdk_base_1.Base {
|
|
20
|
-
baseDir;
|
|
21
|
-
[util_js_1.APP_INIT] = false;
|
|
22
|
-
#initOnListeners = new Set();
|
|
23
|
-
#initOnceListeners = new Set();
|
|
24
|
-
_instance;
|
|
25
|
-
constructor(options) {
|
|
26
|
-
super({ initMethod: '_init' });
|
|
27
|
-
this.options = options;
|
|
28
|
-
this.baseDir = this.options.baseDir;
|
|
29
|
-
}
|
|
30
|
-
async _init() {
|
|
31
|
-
if (this.options.beforeInit) {
|
|
32
|
-
await this.options.beforeInit(this);
|
|
33
|
-
delete this.options.beforeInit;
|
|
34
|
-
}
|
|
35
|
-
if (this.options.clean !== false) {
|
|
36
|
-
const logDir = node_path_1.default.join(this.options.baseDir, 'logs');
|
|
37
|
-
try {
|
|
38
|
-
await (0, utils_js_1.rimraf)(logDir);
|
|
39
|
-
}
|
|
40
|
-
catch (err) {
|
|
41
|
-
console.error(`remove log dir ${logDir} failed: ${err.stack}`);
|
|
42
|
-
}
|
|
43
|
-
const runDir = node_path_1.default.join(this.options.baseDir, 'run');
|
|
44
|
-
try {
|
|
45
|
-
await (0, utils_js_1.rimraf)(runDir);
|
|
46
|
-
}
|
|
47
|
-
catch (err) {
|
|
48
|
-
console.error(`remove run dir ${runDir} failed: ${err.stack}`);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
this.options.clusterPort = await (0, detect_port_1.detectPort)();
|
|
52
|
-
process.env.CLUSTER_PORT = String(this.options.clusterPort);
|
|
53
|
-
debug('get clusterPort %s', this.options.clusterPort);
|
|
54
|
-
const { Agent } = await (0, utils_1.importModule)(this.options.framework);
|
|
55
|
-
const agent = this._instance = new Agent({ ...this.options });
|
|
56
|
-
// egg-mock plugin need to override egg context
|
|
57
|
-
Object.assign(agent.context, context_js_1.context);
|
|
58
|
-
(0, mock_custom_loader_js_1.setCustomLoader)(agent);
|
|
59
|
-
debug('agent instantiate');
|
|
60
|
-
this[util_js_1.APP_INIT] = true;
|
|
61
|
-
debug('this[APP_INIT] = true');
|
|
62
|
-
this.#bindEvents();
|
|
63
|
-
await agent.ready();
|
|
64
|
-
const msg = {
|
|
65
|
-
action: 'egg-ready',
|
|
66
|
-
data: this.options,
|
|
67
|
-
};
|
|
68
|
-
agent.messenger.onMessage(msg);
|
|
69
|
-
debug('agent ready');
|
|
70
|
-
}
|
|
71
|
-
#bindEvents() {
|
|
72
|
-
debug('bind cache events to agent');
|
|
73
|
-
for (const args of this.#initOnListeners) {
|
|
74
|
-
debug('on(%s), use cache and pass to agent', args);
|
|
75
|
-
this._instance.on(args[0], args[1]);
|
|
76
|
-
this.removeListener(args[0], args[1]);
|
|
77
|
-
}
|
|
78
|
-
for (const args of this.#initOnceListeners) {
|
|
79
|
-
debug('once(%s), use cache and pass to agent', args);
|
|
80
|
-
this._instance.once(args[0], args[1]);
|
|
81
|
-
this.removeListener(args[0], args[1]);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
on(...args) {
|
|
85
|
-
if (this[util_js_1.APP_INIT]) {
|
|
86
|
-
debug('on(%s), pass to agent', args);
|
|
87
|
-
this._instance.on(args[0], args[1]);
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
debug('on(%s), cache it because agent has not init', args);
|
|
91
|
-
this.#initOnListeners.add(args);
|
|
92
|
-
super.on(args[0], args[1]);
|
|
93
|
-
}
|
|
94
|
-
return this;
|
|
95
|
-
}
|
|
96
|
-
once(...args) {
|
|
97
|
-
if (this[util_js_1.APP_INIT]) {
|
|
98
|
-
debug('once(%s), pass to agent', args);
|
|
99
|
-
this._instance.once(args[0], args[1]);
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
debug('once(%s), cache it because agent has not init', args);
|
|
103
|
-
this.#initOnceListeners.add(args);
|
|
104
|
-
super.on(args[0], args[1]);
|
|
105
|
-
}
|
|
106
|
-
return this;
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* close agent
|
|
110
|
-
*/
|
|
111
|
-
async _close() {
|
|
112
|
-
if (this._instance) {
|
|
113
|
-
await this._instance.close();
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
// when agent init throws an exception, must wait for agent quit gracefully
|
|
117
|
-
await (0, utils_js_1.sleep)(200);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
exports.MockAgent = MockAgent;
|
|
122
|
-
function createAgent(options) {
|
|
123
|
-
return new MockAgent((0, format_options_js_1.formatOptions)(options));
|
|
124
|
-
}
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3BhcmFsbGVsL2FnZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQTZIQSxrQ0FFQztBQS9IRCx5Q0FBcUM7QUFDckMsMERBQTZCO0FBQzdCLHVDQUFnQztBQUNoQyw2Q0FBeUM7QUFDekMsd0NBQTRDO0FBRTVDLDhDQUF3QztBQUN4Qyw0REFBcUQ7QUFFckQsMENBQTRDO0FBQzVDLG9FQUEyRDtBQUMzRCx1Q0FBcUM7QUFFckMsTUFBTSxLQUFLLEdBQUcsSUFBQSxvQkFBUSxFQUFDLGdDQUFnQyxDQUFDLENBQUM7QUFFekQsTUFBYSxTQUFVLFNBQVEsZUFBSTtJQUVqQyxPQUFPLENBQVM7SUFDaEIsQ0FBQyxrQkFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ25CLGdCQUFnQixHQUFHLElBQUksR0FBRyxFQUFTLENBQUM7SUFDcEMsa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQVMsQ0FBQztJQUN0QyxTQUFTLENBQVU7SUFFbkIsWUFBWSxPQUErQjtRQUN6QyxLQUFLLENBQUMsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSztRQUNULElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM1QixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDakMsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDakMs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
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Base } from 'sdk-base';
|
|
2
|
-
import type { EggCore } from '@eggjs/core';
|
|
3
|
-
import { MockOptions, MockApplicationOptions } from '../types.js';
|
|
4
|
-
import { APP_INIT } from './util.js';
|
|
5
|
-
export declare class MockParallelApplication extends Base {
|
|
6
|
-
#private;
|
|
7
|
-
options: MockApplicationOptions;
|
|
8
|
-
baseDir: string;
|
|
9
|
-
[APP_INIT]: boolean;
|
|
10
|
-
_instance: EggCore;
|
|
11
|
-
constructor(options: MockApplicationOptions);
|
|
12
|
-
_init(): Promise<void>;
|
|
13
|
-
on(...args: any[]): this;
|
|
14
|
-
once(...args: any[]): this;
|
|
15
|
-
/**
|
|
16
|
-
* close app
|
|
17
|
-
*/
|
|
18
|
-
_close(): Promise<void>;
|
|
19
|
-
}
|
|
20
|
-
export declare function createApp(initOptions: MockOptions): any;
|