@eggjs/mock 7.0.0-beta.20 → 7.0.0-beta.21

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.
Files changed (96) hide show
  1. package/dist/app/extend/agent.d.ts +33 -38
  2. package/dist/app/extend/agent.js +46 -5
  3. package/dist/app/extend/application.d.ts +171 -5
  4. package/dist/app/extend/application.js +445 -9
  5. package/dist/app/middleware/cluster_app_mock.d.ts +2 -5
  6. package/dist/app/middleware/cluster_app_mock.js +99 -96
  7. package/dist/app.d.ts +5 -9
  8. package/dist/app.js +18 -17
  9. package/dist/bootstrap.d.ts +5 -15
  10. package/dist/bootstrap.js +13 -29
  11. package/dist/index.d.ts +77 -10
  12. package/dist/index.js +90 -22
  13. package/dist/inject_mocha.d.ts +1 -1
  14. package/dist/inject_mocha.js +35 -23
  15. package/dist/lib/agent_handler.d.ts +3 -10
  16. package/dist/lib/agent_handler.js +24 -9
  17. package/dist/lib/app.d.ts +3 -6
  18. package/dist/lib/app.js +291 -14
  19. package/dist/lib/app_handler.d.ts +5 -6
  20. package/dist/lib/app_handler.js +69 -21
  21. package/dist/lib/cluster.d.ts +121 -6
  22. package/dist/lib/cluster.js +340 -7
  23. package/dist/lib/context.d.ts +1 -4
  24. package/dist/lib/context.js +11 -3
  25. package/dist/lib/format_options.d.ts +2 -7
  26. package/dist/lib/format_options.js +93 -4
  27. package/dist/lib/inject_context.d.ts +1 -4
  28. package/dist/lib/inject_context.js +126 -22
  29. package/dist/lib/mock_agent.d.ts +4 -8
  30. package/dist/lib/mock_agent.js +45 -3
  31. package/dist/lib/mock_custom_loader.d.ts +1 -4
  32. package/dist/lib/mock_custom_loader.js +34 -3
  33. package/dist/lib/mock_http_server.d.ts +2 -6
  34. package/dist/lib/mock_http_server.js +18 -3
  35. package/dist/lib/mock_httpclient.d.ts +36 -2
  36. package/dist/lib/mock_httpclient.js +146 -4
  37. package/dist/lib/parallel/agent.d.ts +20 -5
  38. package/dist/lib/parallel/agent.js +117 -8
  39. package/dist/lib/parallel/app.d.ts +19 -24
  40. package/dist/lib/parallel/app.js +111 -9
  41. package/dist/lib/parallel/util.d.ts +3 -2
  42. package/dist/lib/parallel/util.js +66 -4
  43. package/dist/lib/prerequire.d.ts +1 -1
  44. package/dist/lib/prerequire.js +25 -1
  45. package/dist/lib/request_call_function.d.ts +1 -1
  46. package/dist/lib/request_call_function.js +47 -34
  47. package/dist/lib/restore.d.ts +1 -2
  48. package/dist/lib/restore.js +13 -9
  49. package/dist/lib/start-cluster.d.ts +2 -1
  50. package/dist/lib/start-cluster.js +14 -15
  51. package/dist/lib/supertest.d.ts +11 -2
  52. package/dist/lib/supertest.js +40 -5
  53. package/dist/lib/tmp/empty.d.ts +1 -1
  54. package/dist/lib/tmp/empty.js +2 -1
  55. package/dist/lib/types.d.ts +72 -3
  56. package/dist/lib/types.js +2 -3
  57. package/dist/lib/utils.d.ts +8 -11
  58. package/dist/lib/utils.js +69 -3
  59. package/dist/register.d.ts +7 -11
  60. package/dist/register.js +41 -55
  61. package/package.json +7 -7
  62. package/dist/agent-BKYkjoCx.js +0 -111
  63. package/dist/agent-CHCe8tnW.d.ts +0 -24
  64. package/dist/agent-DZ_fHoxJ.js +0 -48
  65. package/dist/agent_handler-DeUtoRVT.js +0 -26
  66. package/dist/app-6Bn3F5Uw.js +0 -252
  67. package/dist/app-CoypamK1.js +0 -99
  68. package/dist/app-l47a-gqT.d.ts +0 -7
  69. package/dist/app_handler-CkiK6fyC.js +0 -55
  70. package/dist/app_handler-Gp5J9X-v.d.ts +0 -9
  71. package/dist/application-BPpvw5dg.d.ts +0 -175
  72. package/dist/application-LrKwuOKn.js +0 -385
  73. package/dist/cluster-CA_hr9eV.js +0 -283
  74. package/dist/cluster-RTfUwmUd.d.ts +0 -126
  75. package/dist/context-BIduDy1M.js +0 -10
  76. package/dist/format_options-LRnReKde.js +0 -65
  77. package/dist/index-BtBMDZg8.d.ts +0 -78
  78. package/dist/inject_context-BxpcF-ds.js +0 -106
  79. package/dist/inject_mocha-BVf8v6El.js +0 -38
  80. package/dist/inject_mocha-Daf1Aj8M.d.ts +0 -1
  81. package/dist/mock_agent-CxT7Q0_N.js +0 -45
  82. package/dist/mock_custom_loader-f_tHRojG.js +0 -35
  83. package/dist/mock_http_server-De0r07gr.js +0 -17
  84. package/dist/mock_httpclient-1EgQkMxi.d.ts +0 -40
  85. package/dist/mock_httpclient-B6UVI7GS.js +0 -110
  86. package/dist/restore-BL0cE0KG.d.ts +0 -4
  87. package/dist/restore-CVQYXquh.js +0 -16
  88. package/dist/src-D22EjdGo.js +0 -47
  89. package/dist/supertest-BIds28yL.d.ts +0 -16
  90. package/dist/supertest-Cg412Los.js +0 -39
  91. package/dist/types-CPNMyF89.js +0 -1
  92. package/dist/types-CjZ-JeCo.d.ts +0 -75
  93. package/dist/typings/index.d.ts +0 -1
  94. package/dist/util-1xYBaaoh.d.ts +0 -6
  95. package/dist/util-BpppqTXv.js +0 -59
  96. package/dist/utils-MhP_Krx1.js +0 -40
@@ -1,8 +1,117 @@
1
- import "../../utils-MhP_Krx1.js";
2
- import "../../format_options-LRnReKde.js";
3
- import "../../context-BIduDy1M.js";
4
- import "../../mock_custom_loader-f_tHRojG.js";
5
- import "../../util-BpppqTXv.js";
6
- import { MockAgent, createAgent } from "../../agent-BKYkjoCx.js";
7
-
8
- export { MockAgent, createAgent };
1
+ import { debuglog } from 'node:util';
2
+ import path from 'node:path';
3
+ import { Base } from 'sdk-base';
4
+ import { detectPort } from 'detect-port';
5
+ import { importModule } from '@eggjs/utils';
6
+ import { context } from "../context.js";
7
+ import { formatOptions } from "../format_options.js";
8
+ import { sleep, rimraf } from "../utils.js";
9
+ import { setCustomLoader } from "../mock_custom_loader.js";
10
+ import { APP_INIT } from "./util.js";
11
+ const debug = debuglog('egg/mock/lib/parallel/agent');
12
+ export class MockAgent extends Base {
13
+ baseDir;
14
+ [APP_INIT] = false;
15
+ #initOnListeners = new Set();
16
+ #initOnceListeners = new Set();
17
+ _instance;
18
+ constructor(options) {
19
+ super({ initMethod: '_init' });
20
+ this.options = options;
21
+ this.baseDir = this.options.baseDir;
22
+ }
23
+ async _init() {
24
+ if (this.options.beforeInit) {
25
+ await this.options.beforeInit(this);
26
+ delete this.options.beforeInit;
27
+ }
28
+ if (this.options.clean !== false) {
29
+ const logDir = path.join(this.options.baseDir, 'logs');
30
+ try {
31
+ await rimraf(logDir);
32
+ }
33
+ catch (err) {
34
+ console.error(`remove log dir ${logDir} failed: ${err.stack}`);
35
+ }
36
+ const runDir = path.join(this.options.baseDir, 'run');
37
+ try {
38
+ await rimraf(runDir);
39
+ }
40
+ catch (err) {
41
+ console.error(`remove run dir ${runDir} failed: ${err.stack}`);
42
+ }
43
+ }
44
+ this.options.clusterPort = await detectPort();
45
+ process.env.CLUSTER_PORT = String(this.options.clusterPort);
46
+ debug('get clusterPort %s', this.options.clusterPort);
47
+ const { Agent } = await importModule(this.options.framework);
48
+ const agent = (this._instance = new Agent({ ...this.options }));
49
+ // egg-mock plugin need to override egg context
50
+ Object.assign(agent.context, context);
51
+ setCustomLoader(agent);
52
+ debug('agent instantiate');
53
+ this[APP_INIT] = true;
54
+ debug('this[APP_INIT] = true');
55
+ this.#bindEvents();
56
+ await agent.ready();
57
+ const msg = {
58
+ action: 'egg-ready',
59
+ data: this.options,
60
+ };
61
+ agent.messenger.onMessage(msg);
62
+ debug('agent ready');
63
+ }
64
+ #bindEvents() {
65
+ debug('bind cache events to agent');
66
+ for (const args of this.#initOnListeners) {
67
+ debug('on(%s), use cache and pass to agent', args);
68
+ this._instance.on(args[0], args[1]);
69
+ this.removeListener(args[0], args[1]);
70
+ }
71
+ for (const args of this.#initOnceListeners) {
72
+ debug('once(%s), use cache and pass to agent', args);
73
+ this._instance.once(args[0], args[1]);
74
+ this.removeListener(args[0], args[1]);
75
+ }
76
+ }
77
+ on(...args) {
78
+ if (this[APP_INIT]) {
79
+ debug('on(%s), pass to agent', args);
80
+ this._instance.on(args[0], args[1]);
81
+ }
82
+ else {
83
+ debug('on(%s), cache it because agent has not init', args);
84
+ this.#initOnListeners.add(args);
85
+ super.on(args[0], args[1]);
86
+ }
87
+ return this;
88
+ }
89
+ once(...args) {
90
+ if (this[APP_INIT]) {
91
+ debug('once(%s), pass to agent', args);
92
+ this._instance.once(args[0], args[1]);
93
+ }
94
+ else {
95
+ debug('once(%s), cache it because agent has not init', args);
96
+ this.#initOnceListeners.add(args);
97
+ super.on(args[0], args[1]);
98
+ }
99
+ return this;
100
+ }
101
+ /**
102
+ * close agent
103
+ */
104
+ async _close() {
105
+ if (this._instance) {
106
+ await this._instance.close();
107
+ }
108
+ else {
109
+ // when agent init throws an exception, must wait for agent quit gracefully
110
+ await sleep(200);
111
+ }
112
+ }
113
+ }
114
+ export function createAgent(options) {
115
+ return new MockAgent(formatOptions(options));
116
+ }
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3BhcmFsbGVsL2FnZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBRTdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXJELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXJDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0FBRXRELE1BQU0sT0FBTyxTQUFVLFNBQVEsSUFBSTtJQUVqQyxPQUFPLENBQVM7SUFDaEIsQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDbkIsZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQVMsQ0FBQztJQUNwQyxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsRUFBUyxDQUFDO0lBQ3RDLFNBQVMsQ0FBVztJQUVwQixZQUFZLE9BQStCO1FBQ3pDLEtBQUssQ0FBQyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8s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
@@ -1,25 +1,20 @@
1
- import "../../mock_httpclient-1EgQkMxi.js";
2
- import { MockApplicationOptions, MockOptions } from "../../types-CjZ-JeCo.js";
3
- import { APP_INIT } from "../../util-1xYBaaoh.js";
4
- import { Application } from "egg";
5
- import { Base } from "sdk-base";
6
-
7
- //#region src/lib/parallel/app.d.ts
8
- declare class MockParallelApplication extends Base {
9
- #private;
10
- options: MockApplicationOptions;
11
- baseDir: string;
12
- [APP_INIT]: boolean;
13
- _instance: Application;
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>;
1
+ import { Base } from 'sdk-base';
2
+ import { Application as EggApplication } from 'egg';
3
+ import type { MockOptions, MockApplicationOptions } from '../types.ts';
4
+ import { APP_INIT } from './util.ts';
5
+ export declare class MockParallelApplication extends Base {
6
+ #private;
7
+ options: MockApplicationOptions;
8
+ baseDir: string;
9
+ [APP_INIT]: boolean;
10
+ _instance: EggApplication;
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>;
22
19
  }
23
- declare function createApp(initOptions: MockOptions): any;
24
- //#endregion
25
- export { MockParallelApplication, createApp };
20
+ export declare function createApp(initOptions: MockOptions): any;
@@ -1,9 +1,111 @@
1
- import "../../mock_http_server-De0r07gr.js";
2
- import "../../utils-MhP_Krx1.js";
3
- import "../../format_options-LRnReKde.js";
4
- import "../../context-BIduDy1M.js";
5
- import "../../mock_custom_loader-f_tHRojG.js";
6
- import "../../util-BpppqTXv.js";
7
- import { MockParallelApplication, createApp } from "../../app-CoypamK1.js";
8
-
9
- export { MockParallelApplication, createApp };
1
+ import { debuglog } from 'node:util';
2
+ import { Base } from 'sdk-base';
3
+ import { importModule } from '@eggjs/utils';
4
+ import { Application as EggApplication } from 'egg';
5
+ import { context } from "../context.js";
6
+ import { formatOptions } from "../format_options.js";
7
+ import { sleep } from "../utils.js";
8
+ import { setCustomLoader } from "../mock_custom_loader.js";
9
+ import { createServer } from "../mock_http_server.js";
10
+ import { proxyApp, APP_INIT } from "./util.js";
11
+ const debug = debuglog('egg/mock/lib/parallel/app');
12
+ export class MockParallelApplication extends Base {
13
+ baseDir;
14
+ [APP_INIT] = false;
15
+ #initOnListeners = new Set();
16
+ #initOnceListeners = new Set();
17
+ _instance;
18
+ constructor(options) {
19
+ super({ initMethod: '_init' });
20
+ this.options = options;
21
+ this.baseDir = options.baseDir;
22
+ }
23
+ async _init() {
24
+ if (this.options.beforeInit) {
25
+ await this.options.beforeInit(this);
26
+ delete this.options.beforeInit;
27
+ }
28
+ if (!this.options.clusterPort) {
29
+ this.options.clusterPort = parseInt(process.env.CLUSTER_PORT);
30
+ }
31
+ if (!this.options.clusterPort) {
32
+ throw new Error('cannot get env.CLUSTER_PORT, parallel run fail');
33
+ }
34
+ debug('get clusterPort %s', this.options.clusterPort);
35
+ const { Application } = await importModule(this.options.framework);
36
+ const app = (this._instance = new Application({ ...this.options }));
37
+ // egg-mock plugin need to override egg context
38
+ Object.assign(app.context, context);
39
+ setCustomLoader(app);
40
+ debug('app instantiate');
41
+ this[APP_INIT] = true;
42
+ debug('this[APP_INIT] = true');
43
+ this.#bindEvents();
44
+ debug('http server instantiate');
45
+ createServer(app);
46
+ await app.ready();
47
+ const msg = {
48
+ action: 'egg-ready',
49
+ data: this.options,
50
+ };
51
+ app.messenger.onMessage(msg);
52
+ debug('app ready');
53
+ }
54
+ #bindEvents() {
55
+ for (const args of this.#initOnListeners) {
56
+ debug('on(%s), use cache and pass to app', args);
57
+ this._instance.on(args[0], args[1]);
58
+ this.removeListener(args[0], args[1]);
59
+ }
60
+ for (const args of this.#initOnceListeners) {
61
+ debug('once(%s), use cache and pass to app', args);
62
+ this._instance.once(args[0], args[1]);
63
+ this.removeListener(args[0], args[1]);
64
+ }
65
+ }
66
+ on(...args) {
67
+ if (this[APP_INIT]) {
68
+ debug('on(%s), pass to app', args);
69
+ this._instance.on(args[0], args[1]);
70
+ }
71
+ else {
72
+ debug('on(%s), cache it because app has not init', args);
73
+ if (this.#initOnListeners) {
74
+ this.#initOnListeners.add(args);
75
+ }
76
+ super.on(args[0], args[1]);
77
+ }
78
+ return this;
79
+ }
80
+ once(...args) {
81
+ if (this[APP_INIT]) {
82
+ debug('once(%s), pass to app', args);
83
+ this._instance.once(args[0], args[1]);
84
+ }
85
+ else {
86
+ debug('once(%s), cache it because app has not init', args);
87
+ if (this.#initOnceListeners) {
88
+ this.#initOnceListeners.add(args);
89
+ }
90
+ super.on(args[0], args[1]);
91
+ }
92
+ return this;
93
+ }
94
+ /**
95
+ * close app
96
+ */
97
+ async _close() {
98
+ if (this._instance) {
99
+ await this._instance.close();
100
+ }
101
+ else {
102
+ // when app init throws an exception, must wait for app quit gracefully
103
+ await sleep(200);
104
+ }
105
+ }
106
+ }
107
+ export function createApp(initOptions) {
108
+ const app = new MockParallelApplication(formatOptions(initOptions));
109
+ return proxyApp(app);
110
+ }
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9wYXJhbGxlbC9hcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsSUFBSSxjQUFjLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFcEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFckQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRS9DLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBRXBELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxJQUFJO0lBRS9DLE9BQU8sQ0FBUztJQUNoQixDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUNuQixnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBUyxDQUFDO0lBQ3BDLGtCQUFrQixHQUFHLElBQUksR0FBRyxFQUFTLENBQUM7SUFDdEMsU0FBUyxDQUFpQjtJQUUxQixZQUFZLE9BQStCO1FBQ3pDLEtBQUssQ0FBQyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFP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
@@ -1,2 +1,3 @@
1
- import { APP_INIT, MOCK_APP_METHOD, proxyApp } from "../../util-1xYBaaoh.js";
2
- export { APP_INIT, MOCK_APP_METHOD, proxyApp };
1
+ export declare const MOCK_APP_METHOD: string[];
2
+ export declare const APP_INIT: unique symbol;
3
+ export declare function proxyApp(app: any): any;
@@ -1,4 +1,66 @@
1
- import "../../utils-MhP_Krx1.js";
2
- import { APP_INIT, MOCK_APP_METHOD, proxyApp } from "../../util-BpppqTXv.js";
3
-
4
- export { APP_INIT, MOCK_APP_METHOD, proxyApp };
1
+ import { debuglog } from 'node:util';
2
+ import { getProperty } from "../utils.js";
3
+ const debug = debuglog('egg/mock/lib/parallel/util');
4
+ export const MOCK_APP_METHOD = ['ready', 'isClosed', 'closed', 'close', 'on', 'once'];
5
+ export const APP_INIT = Symbol('appInit');
6
+ export function proxyApp(app) {
7
+ const proxyApp = new Proxy(app, {
8
+ get(target, prop) {
9
+ // don't delegate properties on MockAgent
10
+ if (MOCK_APP_METHOD.includes(prop)) {
11
+ return getProperty(target, prop);
12
+ }
13
+ if (!target[APP_INIT])
14
+ throw new Error(`can't get ${prop} before ready`);
15
+ // it's asynchronous when agent and app are loading,
16
+ // so should get the properties after loader ready
17
+ debug('proxy handler.get %s', prop);
18
+ return target._instance[prop];
19
+ },
20
+ set(target, prop, value) {
21
+ if (MOCK_APP_METHOD.includes(prop))
22
+ return true;
23
+ if (!target[APP_INIT])
24
+ throw new Error(`can't set ${prop} before ready`);
25
+ debug('proxy handler.set %s', prop);
26
+ target._instance[prop] = value;
27
+ return true;
28
+ },
29
+ defineProperty(target, prop, descriptor) {
30
+ // can't define properties on MockAgent
31
+ if (MOCK_APP_METHOD.includes(prop))
32
+ return true;
33
+ if (!target[APP_INIT])
34
+ throw new Error(`can't defineProperty ${prop} before ready`);
35
+ debug('proxy handler.defineProperty %s', prop);
36
+ Object.defineProperty(target._instance, prop, descriptor);
37
+ return true;
38
+ },
39
+ deleteProperty(target, prop) {
40
+ // can't delete properties on MockAgent
41
+ if (MOCK_APP_METHOD.includes(prop))
42
+ return true;
43
+ if (!target[APP_INIT])
44
+ throw new Error(`can't delete ${prop} before ready`);
45
+ debug('proxy handler.deleteProperty %s', prop);
46
+ delete target._instance[prop];
47
+ return true;
48
+ },
49
+ getOwnPropertyDescriptor(target, prop) {
50
+ if (MOCK_APP_METHOD.includes(prop))
51
+ return Object.getOwnPropertyDescriptor(target, prop);
52
+ if (!target[APP_INIT])
53
+ throw new Error(`can't getOwnPropertyDescriptor ${prop} before ready`);
54
+ debug('proxy handler.getOwnPropertyDescriptor %s', prop);
55
+ return Object.getOwnPropertyDescriptor(target._instance, prop);
56
+ },
57
+ getPrototypeOf(target) {
58
+ if (!target[APP_INIT])
59
+ throw new Error("can't getPrototypeOf before ready");
60
+ debug('proxy handler.getPrototypeOf %s');
61
+ return Object.getPrototypeOf(target._instance);
62
+ },
63
+ });
64
+ return proxyApp;
65
+ }
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcGFyYWxsZWwvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXJDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFMUMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUFFckQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztBQUV0RixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRTFDLE1BQU0sVUFBVSxRQUFRLENBQUMsR0FBUTtJQUMvQixNQUFNLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUU7UUFDOUIsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFZO1lBQ3RCLHlDQUF5QztZQUN6QyxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbkMsT0FBTyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ25DLENBQUM7WUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsSUFBSSxlQUFlLENBQUMsQ0FBQztZQUN6RSxvREFBb0Q7WUFDcEQsa0RBQWtEO1lBQ2xELEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNwQyxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUNELEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBWSxFQUFFLEtBQUs7WUFDN0IsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsSUFBSSxlQUFlLENBQUMsQ0FBQztZQUN6RSxLQUFLLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDcEMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDL0IsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsY0FBYyxDQUFDLE1BQU0sRUFBRSxJQUFZLEVBQUUsVUFBVTtZQUM3Qyx1Q0FBdUM7WUFDdkMsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixJQUFJLGVBQWUsQ0FBQyxDQUFDO1lBQ3BGLEtBQUssQ0FBQyxpQ0FBaUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMvQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQzFELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELGNBQWMsQ0FBQyxNQUFNLEVBQUUsSUFBWTtZQUNqQyx1Q0FBdUM7WUFDdkMsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixJQUFJLGVBQWUsQ0FBQyxDQUFDO1lBQzVFLEtBQUssQ0FBQyxpQ0FBaUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMvQyxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0Qsd0JBQXdCLENBQUMsTUFBTSxFQUFFLElBQVk7WUFDM0MsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFBRSxPQUFPLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDekYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsSUFBSSxlQUFlLENBQUMsQ0FBQztZQUM5RixLQUFLLENBQUMsMkNBQTJDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDekQsT0FBTyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQ0QsY0FBYyxDQUFDLE1BQU07WUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1lBQzVFLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakQsQ0FBQztLQUNGLENBQUMsQ0FBQztJQUNILE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMifQ==
@@ -1 +1 @@
1
- export { };
1
+ export {};
@@ -1 +1,25 @@
1
- export { };
1
+ // const debug = require('util').debuglog('egg-mock/prerequire');
2
+ // const path = require('path');
3
+ // const { existsSync } = require('fs');
4
+ // const globby = require('globby');
5
+ export {};
6
+ // const cwd = process.cwd();
7
+ // const dirs = [];
8
+ // if (existsSync(path.join(cwd, 'app'))) {
9
+ // dirs.push('app/**/*.js');
10
+ // }
11
+ // // avoid Error: ENOENT: no such file or directory, scandir
12
+ // if (existsSync(path.join(cwd, 'config'))) {
13
+ // dirs.push('config/**/*.js');
14
+ // }
15
+ // const files = globby.sync(dirs, { cwd });
16
+ // for (const file of files) {
17
+ // const filepath = path.join(cwd, file);
18
+ // try {
19
+ // debug('%s prerequire %s', process.pid, filepath);
20
+ // require(filepath);
21
+ // } catch (err) {
22
+ // debug('prerequire error %s', err.message);
23
+ // }
24
+ // }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcmVxdWlyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcHJlcmVxdWlyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpRUFBaUU7QUFDakUsZ0NBQWdDO0FBQ2hDLHdDQUF3QztBQUN4QyxvQ0FBb0M7O0FBRXBDLDZCQUE2QjtBQUM3QixtQkFBbUI7QUFDbkIsMkNBQTJDO0FBQzNDLDhCQUE4QjtBQUM5QixJQUFJO0FBQ0osNkRBQTZEO0FBQzdELDhDQUE4QztBQUM5QyxpQ0FBaUM7QUFDakMsSUFBSTtBQUNKLDRDQUE0QztBQUU1Qyw4QkFBOEI7QUFDOUIsMkNBQTJDO0FBQzNDLFVBQVU7QUFDVix3REFBd0Q7QUFDeEQseUJBQXlCO0FBQ3pCLG9CQUFvQjtBQUNwQixpREFBaUQ7QUFDakQsTUFBTTtBQUNOLElBQUkifQ==
@@ -1 +1 @@
1
- export { };
1
+ export {};
@@ -1,37 +1,50 @@
1
- import httpClient from "urllib";
2
-
3
- //#region src/lib/request_call_function.ts
1
+ import httpClient from 'urllib';
4
2
  const { port, method, args, property, needResult } = JSON.parse(process.argv[2]);
5
3
  const url = `http://127.0.0.1:${port}/__egg_mock_call_function`;
6
- httpClient.request(url, {
7
- method: "POST",
8
- data: {
9
- method,
10
- args,
11
- property,
12
- needResult
13
- },
14
- contentType: "json",
15
- dataType: "json"
16
- }).then(({ data }) => {
17
- if (!data.success) {
18
- if (data.error) console.error(data.error);
19
- else if (data.message) {
20
- const err = new Error(data.message);
21
- err.stack = data.stack;
22
- console.error(err);
23
- }
24
- process.exit(2);
25
- }
26
- if (data.result) console.log("%j", data.result);
27
- process.exit(0);
28
- }).catch((err) => {
29
- if (method === "mockRestore" && err.message.includes("ECONNREFUSED")) process.exit(0);
30
- console.error("POST %s error, method: %s, args: %j", url, method, args);
31
- console.error(err.stack);
32
- if (method === "mockRestore") process.exit(0);
33
- else process.exit(1);
4
+ httpClient
5
+ .request(url, {
6
+ method: 'POST',
7
+ data: {
8
+ method,
9
+ args,
10
+ property,
11
+ needResult,
12
+ },
13
+ contentType: 'json',
14
+ dataType: 'json',
15
+ })
16
+ .then(({ data }) => {
17
+ if (!data.success) {
18
+ // console.log('POST %s error, method: %s, args: %j, result data: %j',
19
+ // url, method, args, data);
20
+ if (data.error) {
21
+ console.error(data.error);
22
+ }
23
+ else if (data.message) {
24
+ const err = new Error(data.message);
25
+ err.stack = data.stack;
26
+ console.error(err);
27
+ }
28
+ process.exit(2);
29
+ }
30
+ if (data.result) {
31
+ console.log('%j', data.result);
32
+ }
33
+ process.exit(0);
34
+ })
35
+ .catch(err => {
36
+ // ignore ECONNREFUSED error on mockRestore
37
+ if (method === 'mockRestore' && err.message.includes('ECONNREFUSED')) {
38
+ process.exit(0);
39
+ }
40
+ console.error('POST %s error, method: %s, args: %j', url, method, args);
41
+ console.error(err.stack);
42
+ // ignore all error on mockRestore
43
+ if (method === 'mockRestore') {
44
+ process.exit(0);
45
+ }
46
+ else {
47
+ process.exit(1);
48
+ }
34
49
  });
35
-
36
- //#endregion
37
- export { };
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdF9jYWxsX2Z1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9yZXF1ZXN0X2NhbGxfZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxVQUFVLE1BQU0sUUFBUSxDQUFDO0FBRWhDLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakYsTUFBTSxHQUFHLEdBQUcsb0JBQW9CLElBQUksMkJBQTJCLENBQUM7QUFFaEUsVUFBVTtLQUNQLE9BQU8sQ0FBQyxHQUFHLEVBQUU7SUFDWixNQUFNLEVBQUUsTUFBTTtJQUNkLElBQUksRUFBRTtRQUNKLE1BQU07UUFDTixJQUFJO1FBQ0osUUFBUTtRQUNSLFVBQVU7S0FDWDtJQUNELFdBQVcsRUFBRSxNQUFNO0lBQ25CLFFBQVEsRUFBRSxNQUFNO0NBQ2pCLENBQUM7S0FDRCxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7SUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNsQixzRUFBc0U7UUFDdEUsOEJBQThCO1FBQzlCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDdkIsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQixDQUFDO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLENBQUMsQ0FBQztLQUNELEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtJQUNYLDJDQUEyQztJQUMzQyxJQUFJLE1BQU0sS0FBSyxhQUFhLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztRQUNyRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLHFDQUFxQyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEUsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFekIsa0NBQWtDO0lBQ2xDLElBQUksTUFBTSxLQUFLLGFBQWEsRUFBRSxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7QUFDSCxDQUFDLENBQUMsQ0FBQyJ9
@@ -1,2 +1 @@
1
- import { restore } from "../restore-BL0cE0KG.js";
2
- export { restore };
1
+ export declare function restore(): Promise<void>;
@@ -1,9 +1,13 @@
1
- import "../mock_http_server-De0r07gr.js";
2
- import "../utils-MhP_Krx1.js";
3
- import "../supertest-Cg412Los.js";
4
- import "../format_options-LRnReKde.js";
5
- import "../cluster-CA_hr9eV.js";
6
- import "../mock_agent-CxT7Q0_N.js";
7
- import { restore } from "../restore-CVQYXquh.js";
8
-
9
- export { restore };
1
+ import { debuglog } from 'node:util';
2
+ import { restore as mmRestore } from 'mm';
3
+ import { restoreMockAgent } from "./mock_agent.js";
4
+ import { restore as clusterRestore } from "./cluster.js";
5
+ const debug = debuglog('egg/mock/lib/restore');
6
+ export async function restore() {
7
+ // keep mm.restore execute in the current event loop
8
+ mmRestore();
9
+ await clusterRestore();
10
+ await restoreMockAgent();
11
+ debug('restore all');
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcmVzdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXJDLE9BQU8sRUFBRSxPQUFPLElBQUksU0FBUyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLElBQUksY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxLQUFLLFVBQVUsT0FBTztJQUMzQixvREFBb0Q7SUFDcEQsU0FBUyxFQUFFLENBQUM7SUFDWixNQUFNLGNBQWMsRUFBRSxDQUFDO0lBQ3ZCLE1BQU0sZ0JBQWdCLEVBQUUsQ0FBQztJQUN6QixLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDdkIsQ0FBQyJ9
@@ -1 +1,2 @@
1
- export { };
1
+ #!/usr/bin/env node
2
+ export {};
@@ -1,19 +1,18 @@
1
1
  #!/usr/bin/env node
2
- import assert from "node:assert";
3
- import { debuglog } from "node:util";
4
- import { importModule } from "@eggjs/utils";
5
- import { isAsyncFunction } from "is-type-of";
6
-
7
- //#region src/lib/start-cluster.ts
8
- const debug = debuglog("egg/mock/lib/start-cluster");
2
+ import assert from 'node:assert';
3
+ import { debuglog } from 'node:util';
4
+ import { importModule } from '@eggjs/utils';
5
+ import { isAsyncFunction } from 'is-type-of';
6
+ const debug = debuglog('egg/mock/lib/start-cluster');
7
+ // if (process.env.EGG_BIN_PREREQUIRE) {
8
+ // require('./prerequire');
9
+ // }
9
10
  async function main() {
10
- const options = JSON.parse(process.argv[2]);
11
- debug("startCluster with options: %o", options);
12
- const { startCluster } = await importModule(options.framework);
13
- assert(isAsyncFunction(startCluster), `framework(${options.framework}) should export startCluster as an async function`);
14
- await startCluster(options);
11
+ const options = JSON.parse(process.argv[2]);
12
+ debug('startCluster with options: %o', options);
13
+ const { startCluster } = await importModule(options.framework);
14
+ assert(isAsyncFunction(startCluster), `framework(${options.framework}) should export startCluster as an async function`);
15
+ await startCluster(options);
15
16
  }
16
17
  main();
17
-
18
- //#endregion
19
- export { };
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtY2x1c3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvc3RhcnQtY2x1c3Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTdDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0FBRXJELHdDQUF3QztBQUN4Qyw2QkFBNkI7QUFDN0IsSUFBSTtBQUVKLEtBQUssVUFBVSxJQUFJO0lBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVDLEtBQUssQ0FBQywrQkFBK0IsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoRCxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsTUFBTSxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9ELE1BQU0sQ0FDSixlQUFlLENBQUMsWUFBWSxDQUFDLEVBQzdCLGFBQWEsT0FBTyxDQUFDLFNBQVMsbURBQW1ELENBQ2xGLENBQUM7SUFDRixNQUFNLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBRUQsSUFBSSxFQUFFLENBQUMifQ==
@@ -1,2 +1,11 @@
1
- import { EggTestRequest, request } from "../supertest-BIds28yL.js";
2
- export { EggTestRequest, request };
1
+ import { Request, Test } from '@eggjs/supertest';
2
+ /**
3
+ * Test against the given `app`,
4
+ * returning a new `Test`.
5
+ */
6
+ export declare class EggTestRequest extends Request {
7
+ #private;
8
+ constructor(app: any);
9
+ protected _testRequest(method: string, url: string): Test;
10
+ }
11
+ export declare function request(app: any): EggTestRequest;