@eggjs/mock 7.0.0-beta.19 → 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 (63) hide show
  1. package/dist/app/extend/agent.d.ts +33 -38
  2. package/dist/app/extend/agent.js +45 -47
  3. package/dist/app/extend/application.d.ts +167 -171
  4. package/dist/app/extend/application.js +442 -382
  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 -9
  10. package/dist/bootstrap.js +12 -11
  11. package/dist/index.d.ts +76 -80
  12. package/dist/index.js +81 -38
  13. package/dist/inject_mocha.d.ts +1 -1
  14. package/dist/inject_mocha.js +28 -27
  15. package/dist/lib/agent_handler.d.ts +3 -7
  16. package/dist/lib/agent_handler.js +20 -22
  17. package/dist/lib/app.d.ts +3 -7
  18. package/dist/lib/app.js +285 -248
  19. package/dist/lib/app_handler.d.ts +5 -9
  20. package/dist/lib/app_handler.js +62 -49
  21. package/dist/lib/cluster.d.ts +92 -97
  22. package/dist/lib/cluster.js +335 -278
  23. package/dist/lib/context.d.ts +1 -4
  24. package/dist/lib/context.js +11 -10
  25. package/dist/lib/format_options.d.ts +2 -7
  26. package/dist/lib/format_options.js +88 -60
  27. package/dist/lib/inject_context.d.ts +1 -4
  28. package/dist/lib/inject_context.js +123 -103
  29. package/dist/lib/mock_agent.d.ts +4 -8
  30. package/dist/lib/mock_agent.js +42 -42
  31. package/dist/lib/mock_custom_loader.d.ts +1 -4
  32. package/dist/lib/mock_custom_loader.js +33 -34
  33. package/dist/lib/mock_http_server.d.ts +2 -6
  34. package/dist/lib/mock_http_server.js +17 -16
  35. package/dist/lib/mock_httpclient.d.ts +34 -38
  36. package/dist/lib/mock_httpclient.js +142 -106
  37. package/dist/lib/parallel/agent.d.ts +19 -23
  38. package/dist/lib/parallel/agent.js +113 -107
  39. package/dist/lib/parallel/app.d.ts +19 -23
  40. package/dist/lib/parallel/app.js +108 -96
  41. package/dist/lib/parallel/util.d.ts +3 -6
  42. package/dist/lib/parallel/util.js +64 -57
  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 -4
  48. package/dist/lib/restore.js +11 -14
  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 +6 -11
  52. package/dist/lib/supertest.js +36 -35
  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 +64 -68
  56. package/dist/lib/types.js +2 -1
  57. package/dist/lib/utils.d.ts +8 -11
  58. package/dist/lib/utils.js +63 -34
  59. package/dist/register.d.ts +7 -9
  60. package/dist/register.js +40 -36
  61. package/package.json +7 -8
  62. package/dist/_virtual/rolldown_runtime.js +0 -7
  63. package/dist/typings/index.d.ts +0 -1
@@ -1,56 +1,69 @@
1
- import { getEggOptions } from "./utils.js";
2
- import "../app/extend/application.js";
3
- import { createApp as createApp$1 } from "./app.js";
4
- import { restore } from "./restore.js";
5
- import { createApp } from "./parallel/app.js";
1
+ import { debuglog } from 'node:util';
2
+ import { createApp as createParallelApp } from "./parallel/app.js";
6
3
  import { setupAgent } from "./agent_handler.js";
7
- import { debuglog } from "node:util";
8
-
9
- //#region src/lib/app_handler.ts
10
- const debug = debuglog("egg/mock/lib/app_handler");
4
+ import { createApp } from "./app.js";
5
+ import { restore } from "./restore.js";
6
+ import { getEggOptions } from "./utils.js";
7
+ import ApplicationUnittest from "../app/extend/application.js";
8
+ const debug = debuglog('egg/mock/lib/app_handler');
11
9
  globalThis.__eggMockAppInstance = null;
12
- function setupApp() {
13
- let app = globalThis.__eggMockAppInstance;
14
- if (app) {
15
- debug("return exists app");
16
- return app;
17
- }
18
- const options = getEggOptions();
19
- debug("env.ENABLE_MOCHA_PARALLEL: %s, process.env.AUTO_AGENT: %s", process.env.ENABLE_MOCHA_PARALLEL, process.env.AUTO_AGENT);
20
- if (process.env.ENABLE_MOCHA_PARALLEL && process.env.AUTO_AGENT) {
21
- app = createApp({
22
- ...options,
23
- beforeInit: async (parallelApp) => {
24
- const agent = await setupAgent();
25
- parallelApp.options.clusterPort = agent.options.clusterPort;
26
- debug("mockParallelApp beforeInit get clusterPort: %s", parallelApp.options.clusterPort);
27
- }
28
- });
29
- debug("mockParallelApp app: %s", !!app);
30
- } else {
31
- app = createApp$1(options);
32
- if (typeof beforeAll === "function") beforeAll(() => app.ready());
33
- if (typeof afterEach === "function") {
34
- afterEach(() => app.backgroundTasksFinished());
35
- afterEach(restore);
36
- }
37
- }
38
- globalThis.__eggMockAppInstance = app;
39
- return app;
10
+ export function setupApp() {
11
+ let app = globalThis.__eggMockAppInstance;
12
+ if (app) {
13
+ debug('return exists app');
14
+ return app;
15
+ }
16
+ const options = getEggOptions();
17
+ debug('env.ENABLE_MOCHA_PARALLEL: %s, process.env.AUTO_AGENT: %s', process.env.ENABLE_MOCHA_PARALLEL, process.env.AUTO_AGENT);
18
+ if (process.env.ENABLE_MOCHA_PARALLEL && process.env.AUTO_AGENT) {
19
+ // setup agent first
20
+ app = createParallelApp({
21
+ ...options,
22
+ beforeInit: async (parallelApp) => {
23
+ const agent = await setupAgent();
24
+ parallelApp.options.clusterPort = agent.options.clusterPort;
25
+ debug('mockParallelApp beforeInit get clusterPort: %s', parallelApp.options.clusterPort);
26
+ },
27
+ });
28
+ debug('mockParallelApp app: %s', !!app);
29
+ }
30
+ else {
31
+ app = createApp(options);
32
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
33
+ // @ts-ignore
34
+ if (typeof beforeAll === 'function') {
35
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
36
+ // @ts-ignore
37
+ // jest
38
+ beforeAll(() => app.ready());
39
+ }
40
+ // @ts-ignore mocha tsd
41
+ if (typeof afterEach === 'function') {
42
+ // mocha and jest
43
+ // @ts-ignore mocha tsd
44
+ afterEach(() => app.backgroundTasksFinished());
45
+ // @ts-ignore mocha tsd
46
+ afterEach(restore);
47
+ }
48
+ }
49
+ globalThis.__eggMockAppInstance = app;
50
+ return app;
40
51
  }
41
52
  let getAppCallback;
42
- function setGetAppCallback(cb) {
43
- getAppCallback = cb;
53
+ export function setGetAppCallback(cb) {
54
+ getAppCallback = cb;
44
55
  }
45
- async function getApp(suite, test) {
46
- if (getAppCallback) return getAppCallback(suite, test);
47
- const app = globalThis.__eggMockAppInstance;
48
- if (app) await app.ready();
49
- return app;
56
+ export async function getApp(suite, test) {
57
+ if (getAppCallback) {
58
+ return getAppCallback(suite, test);
59
+ }
60
+ const app = globalThis.__eggMockAppInstance;
61
+ if (app) {
62
+ await app.ready();
63
+ }
64
+ return app;
50
65
  }
51
- function getBootstrapApp() {
52
- return globalThis.__eggMockAppInstance;
66
+ export function getBootstrapApp() {
67
+ return globalThis.__eggMockAppInstance;
53
68
  }
54
-
55
- //#endregion
56
- export { getApp, getBootstrapApp, setGetAppCallback, setupApp };
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwX2hhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2FwcF9oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFckMsT0FBTyxFQUFFLFNBQVMsSUFBSSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzQyxPQUFPLG1CQUFtQixNQUFNLDhCQUE4QixDQUFDO0FBRS9ELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0FBTW5ELFVBQVUsQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7QUFFdkMsTUFBTSxVQUFVLFFBQVE7SUFDdEIsSUFBSSxHQUFHLEdBQUcsVUFBVSxDQUFDLG9CQUFxQixDQUFDO0lBQzNDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDUixLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMzQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxhQUFhLEVBQUUsQ0FBQztJQUNoQyxLQUFLLENBQ0gsMkRBQTJELEVBQzNELE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQ2pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUN2QixDQUFDO0lBQ0YsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEUsb0JBQW9CO1FBQ3BCLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQztZQUN0QixHQUFHLE9BQU87WUFDVixVQUFVLEVBQUUsS0FBSyxFQUFDLFdBQVcsRUFBQyxFQUFFO2dCQUM5QixNQUFNLEtBQUssR0FBRyxNQUFNLFVBQVUsRUFBRSxDQUFDO2dCQUNqQyxXQUFXLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztnQkFDNUQsS0FBSyxDQUFDLGdEQUFnRCxFQUFFLFdBQVcsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDM0YsQ0FBQztTQUNGLENBQUMsQ0FBQztRQUNILEtBQUssQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUMsQ0FBQztTQUFNLENBQUM7UUFDTixHQUFHLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBbUMsQ0FBQztRQUMzRCw2REFBNkQ7UUFDN0QsYUFBYTtRQUNiLElBQUksT0FBTyxTQUFTLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDcEMsNkRBQTZEO1lBQzdELGFBQWE7WUFDYixPQUFPO1lBQ1AsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLENBQUM7UUFDRCx1QkFBdUI7UUFDdkIsSUFBSSxPQUFPLFNBQVMsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNwQyxpQkFBaUI7WUFDakIsdUJBQXVCO1lBQ3ZCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDO1lBQy9DLHVCQUF1QjtZQUN2QixTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7SUFDRCxVQUFVLENBQUMsb0JBQW9CLEdBQUcsR0FBRyxDQUFDO0lBQ3RDLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELElBQUksY0FBdUQsQ0FBQztBQUU1RCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsRUFBMkM7SUFDM0UsY0FBYyxHQUFHLEVBQUUsQ0FBQztBQUN0QixDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxNQUFNLENBQUMsS0FBZSxFQUFFLElBQWM7SUFDMUQsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUNuQixPQUFPLGNBQWMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUNELE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxvQkFBcUIsQ0FBQztJQUM3QyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1IsTUFBTSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlO0lBQzdCLE9BQU8sVUFBVSxDQUFDLG9CQUFxQixDQUFDO0FBQzFDLENBQUMifQ==
@@ -1,11 +1,8 @@
1
- import { EggTestRequest } from "./supertest.js";
2
- import { MockClusterApplicationOptions, MockClusterOptions } from "./types.js";
3
- import ApplicationUnittest from "../app/extend/application.js";
4
- import { Coffee } from "coffee";
5
-
6
- //#region src/lib/cluster.d.ts
1
+ import { Coffee } from 'coffee';
2
+ import type { MockClusterOptions, MockClusterApplicationOptions } from './types.ts';
3
+ import type ApplicationUnittest from '../app/extend/application.ts';
7
4
  declare global {
8
- var eggMockMasterPort: number;
5
+ var eggMockMasterPort: number;
9
6
  }
10
7
  /**
11
8
  * A cluster version of egg.Application, you can test with supertest
@@ -32,95 +29,93 @@ declare global {
32
29
  * });
33
30
  * });
34
31
  */
35
- declare class ClusterApplication extends Coffee {
36
- [key: string | symbol]: any;
37
- options: MockClusterApplicationOptions;
38
- port: number;
39
- baseDir: string;
40
- closed: boolean;
41
- private _address;
42
- /**
43
- * @class
44
- * @param {Object} options
45
- * - {String} baseDir - The directory of the application
46
- * - {Object} plugins - Custom you plugins
47
- * - {String} framework - The directory of the egg framework
48
- * - {Boolean} [cache=true] - Cache application based on baseDir
49
- * - {Boolean} [coverage=true] - Switch on process coverage, but it'll be slower
50
- * - {Boolean} [clean=true] - Remove $baseDir/logs
51
- * - {Object} [opt] - opt pass to coffee, such as { execArgv: ['--debug'] }
52
- * ```
53
- */
54
- constructor(options: MockClusterApplicationOptions);
55
- /**
56
- * the process that forked
57
- * @member {ChildProcess}
58
- */
59
- get process(): any;
60
- /**
61
- * Compatible API for supertest
62
- */
63
- callback(): this;
64
- /**
65
- * Compatible API for supertest
66
- * @member {String} url
67
- * @private
68
- */
69
- get url(): string;
70
- /**
71
- * Compatible API for supertest
72
- */
73
- address(): {
32
+ export declare class ClusterApplication extends Coffee {
33
+ [key: string | symbol]: any;
34
+ options: MockClusterApplicationOptions;
74
35
  port: number;
75
- address: string | undefined;
76
- };
77
- /**
78
- * Compatible API for supertest
79
- */
80
- listen(): this;
81
- /**
82
- * kill the process
83
- */
84
- close(): Promise<void>;
85
- get isClosed(): boolean;
86
- get router(): {
87
- pathFor(url: string): any;
88
- };
89
- /**
90
- * get app[property] value in app worker
91
- */
92
- getAppInstanceProperty(property: string): any;
93
- /**
94
- * collection logger message, then can be use on `expectLog()`
95
- * it's different from `app.expectLog()`, only support string params.
96
- *
97
- * @param {String} [logger] - logger instance name, default is `logger`
98
- * @function ClusterApplication#expectLog
99
- */
100
- mockLog(logger?: string): void;
101
- /**
102
- * expect str in the logger
103
- * it's different from `app.expectLog()`, only support string params.
104
- *
105
- * @param {String} str - test str
106
- * @param {String} [logger] - logger instance name, default is `logger`
107
- * @function ClusterApplication#expectLog
108
- */
109
- expectLog(str: string, logger?: string): void;
110
- /**
111
- * not expect str in the logger
112
- * it's different from `app.notExpectLog()`, only support string params.
113
- *
114
- * @param {String} str - test str
115
- * @param {String} [logger] - logger instance name, default is `logger`
116
- * @function ClusterApplication#notExpectLog
117
- */
118
- notExpectLog(str: string, logger?: string): void;
119
- httpRequest(): EggTestRequest;
120
- _callFunctionOnAppWorker(method: string, args?: any[], property?: any, needResult?: boolean): any;
36
+ baseDir: string;
37
+ closed: boolean;
38
+ private _address;
39
+ /**
40
+ * @class
41
+ * @param {Object} options
42
+ * - {String} baseDir - The directory of the application
43
+ * - {Object} plugins - Custom you plugins
44
+ * - {String} framework - The directory of the egg framework
45
+ * - {Boolean} [cache=true] - Cache application based on baseDir
46
+ * - {Boolean} [coverage=true] - Switch on process coverage, but it'll be slower
47
+ * - {Boolean} [clean=true] - Remove $baseDir/logs
48
+ * - {Object} [opt] - opt pass to coffee, such as { execArgv: ['--debug'] }
49
+ * ```
50
+ */
51
+ constructor(options: MockClusterApplicationOptions);
52
+ /**
53
+ * the process that forked
54
+ * @member {ChildProcess}
55
+ */
56
+ get process(): any;
57
+ /**
58
+ * Compatible API for supertest
59
+ */
60
+ callback(): this;
61
+ /**
62
+ * Compatible API for supertest
63
+ * @member {String} url
64
+ * @private
65
+ */
66
+ get url(): string;
67
+ /**
68
+ * Compatible API for supertest
69
+ */
70
+ address(): {
71
+ port: number;
72
+ address: string | undefined;
73
+ };
74
+ /**
75
+ * Compatible API for supertest
76
+ */
77
+ listen(): this;
78
+ /**
79
+ * kill the process
80
+ */
81
+ close(): Promise<void>;
82
+ get isClosed(): boolean;
83
+ get router(): {
84
+ pathFor(url: string): any;
85
+ };
86
+ /**
87
+ * get app[property] value in app worker
88
+ */
89
+ getAppInstanceProperty(property: string): any;
90
+ /**
91
+ * collection logger message, then can be use on `expectLog()`
92
+ * it's different from `app.expectLog()`, only support string params.
93
+ *
94
+ * @param {String} [logger] - logger instance name, default is `logger`
95
+ * @function ClusterApplication#expectLog
96
+ */
97
+ mockLog(logger?: string): void;
98
+ /**
99
+ * expect str in the logger
100
+ * it's different from `app.expectLog()`, only support string params.
101
+ *
102
+ * @param {String} str - test str
103
+ * @param {String} [logger] - logger instance name, default is `logger`
104
+ * @function ClusterApplication#expectLog
105
+ */
106
+ expectLog(str: string, logger?: string): void;
107
+ /**
108
+ * not expect str in the logger
109
+ * it's different from `app.notExpectLog()`, only support string params.
110
+ *
111
+ * @param {String} str - test str
112
+ * @param {String} [logger] - logger instance name, default is `logger`
113
+ * @function ClusterApplication#notExpectLog
114
+ */
115
+ notExpectLog(str: string, logger?: string): void;
116
+ httpRequest(): import("./supertest.ts").EggTestRequest;
117
+ _callFunctionOnAppWorker(method: string, args?: any[], property?: any, needResult?: boolean): any;
121
118
  }
122
- type MockClusterApplication = ClusterApplication & ApplicationUnittest;
123
- declare function createCluster(initOptions?: MockClusterOptions): MockClusterApplication;
124
- declare function restore(): Promise<void>;
125
- //#endregion
126
- export { ClusterApplication, MockClusterApplication, createCluster, restore };
119
+ export type MockClusterApplication = ClusterApplication & ApplicationUnittest;
120
+ export declare function createCluster(initOptions?: MockClusterOptions): MockClusterApplication;
121
+ export declare function restore(): Promise<void>;