@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,5 +1,40 @@
1
- import "../mock_http_server-De0r07gr.js";
2
- import "../utils-MhP_Krx1.js";
3
- import { EggTestRequest, request } from "../supertest-Cg412Los.js";
4
-
5
- export { EggTestRequest, request };
1
+ import path from 'node:path';
2
+ import { readJSONSync } from 'utility';
3
+ import { Request, Test } from '@eggjs/supertest';
4
+ import { createServer } from "./mock_http_server.js";
5
+ import { getSourceDirname } from "./utils.js";
6
+ // patch from https://github.com/visionmedia/supertest/blob/199506d8dbfe0bb1434fc07c38cdcd1ab4c7c926/index.js#L19
7
+ let pkgVersion = '';
8
+ /**
9
+ * Test against the given `app`,
10
+ * returning a new `Test`.
11
+ */
12
+ export class EggTestRequest extends Request {
13
+ #app;
14
+ constructor(app) {
15
+ super(createServer(app));
16
+ this.#app = app;
17
+ }
18
+ _testRequest(method, url) {
19
+ // support pathFor(url)
20
+ if (url[0] !== '/') {
21
+ const realUrl = this.#app.router.pathFor(url);
22
+ if (!realUrl) {
23
+ throw new Error(`Can't find router:${url}, please check your 'app/router.js'`);
24
+ }
25
+ url = realUrl;
26
+ }
27
+ const test = super._testRequest(method, url);
28
+ if (!pkgVersion) {
29
+ const pkgFile = path.join(getSourceDirname(), '../package.json');
30
+ const pkg = readJSONSync(pkgFile);
31
+ pkgVersion = pkg.version;
32
+ }
33
+ test.set('User-Agent', `@eggjs/mock/${pkgVersion} Node.js/${process.version}`);
34
+ return test;
35
+ }
36
+ }
37
+ export function request(app) {
38
+ return new EggTestRequest(app);
39
+ }
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwZXJ0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9zdXBlcnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBRTdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdkMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTlDLGlIQUFpSDtBQUVqSCxJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFFcEI7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGNBQWUsU0FBUSxPQUFPO0lBQ3pDLElBQUksQ0FBTTtJQUVWLFlBQVksR0FBUTtRQUNsQixLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUVTLFlBQVksQ0FBQyxNQUFjLEVBQUUsR0FBVztRQUNoRCx1QkFBdUI7UUFDdkIsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDbkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDYixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixHQUFHLHFDQUFxQyxDQUFDLENBQUM7WUFDakYsQ0FBQztZQUNELEdBQUcsR0FBRyxPQUFPLENBQUM7UUFDaEIsQ0FBQztRQUNELE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztZQUNqRSxNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbEMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUM7UUFDM0IsQ0FBQztRQUNELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLGVBQWUsVUFBVSxZQUFZLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFRO0lBQzlCLE9BQU8sSUFBSSxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDakMsQ0FBQyJ9
@@ -1 +1 @@
1
- export { };
1
+ export {};
@@ -1 +1,2 @@
1
- export { };
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RtcC9lbXB0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -1,3 +1,72 @@
1
- import { MockHttpClientMethod, MockResponseCallbackOptions, MockResultFunction, MockResultOptions, ResultObject } from "../mock_httpclient-1EgQkMxi.js";
2
- import { MockAgent, MockApplicationOptions, MockClusterApplicationOptions, MockClusterOptions, MockOption, MockOptions } from "../types-CjZ-JeCo.js";
3
- export { MockAgent, MockApplicationOptions, MockClusterApplicationOptions, MockClusterOptions, MockHttpClientMethod, MockOption, MockOptions, MockResponseCallbackOptions, MockResultFunction, MockResultOptions, ResultObject };
1
+ export interface MockOptions {
2
+ /**
3
+ * The mode of the application
4
+ */
5
+ mode?: 'all-in-one-process' | 'cluster' | 'single';
6
+ /**
7
+ * The directory of the application
8
+ */
9
+ baseDir?: string;
10
+ /**
11
+ * Custom you plugins
12
+ */
13
+ plugins?: any;
14
+ /**
15
+ * The directory of the egg framework
16
+ *
17
+ * Set to `true` to use the current directory as framework directory
18
+ */
19
+ framework?: string | boolean;
20
+ /**
21
+ * current test on plugin
22
+ */
23
+ plugin?: boolean;
24
+ /**
25
+ * @deprecated please use `framework` instead
26
+ */
27
+ customEgg?: string | boolean;
28
+ /**
29
+ * Cache application based on baseDir
30
+ */
31
+ cache?: boolean;
32
+ /**
33
+ * Switch on process coverage, but it'll be slower
34
+ */
35
+ coverage?: boolean;
36
+ /**
37
+ * Remove $baseDir/logs and $baseDir/run before start, default is `true`
38
+ */
39
+ clean?: boolean;
40
+ /**
41
+ * default options.mockCtxStorage value on each mockContext
42
+ */
43
+ mockCtxStorage?: boolean;
44
+ beforeInit?: (app: any) => Promise<void>;
45
+ }
46
+ export interface MockClusterOptions extends MockOptions {
47
+ workers?: number | string;
48
+ cache?: boolean;
49
+ port?: number;
50
+ /**
51
+ * opt pass to coffee, such as { execArgv: ['--debug'] }
52
+ */
53
+ opt?: object;
54
+ startMode?: 'process' | 'worker_threads';
55
+ }
56
+ /**
57
+ * @deprecated please use MockOptions instead
58
+ * keep this for compatible
59
+ */
60
+ export type MockOption = MockOptions;
61
+ export interface MockApplicationOptions extends MockOptions {
62
+ baseDir: string;
63
+ framework: string;
64
+ clusterPort?: number;
65
+ }
66
+ export interface MockClusterApplicationOptions extends MockClusterOptions {
67
+ baseDir: string;
68
+ framework: string;
69
+ port: number;
70
+ }
71
+ export type { MockResultOptions, ResultObject, MockResponseCallbackOptions, MockResultFunction, MockHttpClientMethod, } from './mock_httpclient.js';
72
+ export type { MockAgent } from 'urllib';
package/dist/lib/types.js CHANGED
@@ -1,3 +1,2 @@
1
- import "../types-CPNMyF89.js";
2
-
3
- export { };
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -1,12 +1,9 @@
1
- //#region src/lib/utils.d.ts
2
- declare function getSourceDirname(): string;
3
- declare function sleep(delay: number): Promise<void>;
4
- declare function rimraf(filepath: string): Promise<void>;
5
- declare function rimrafSync(filepath: string): void;
6
- declare function getProperty(target: any, prop: PropertyKey): any;
7
- declare function getEggOptions(): {
8
- baseDir: string;
9
- framework: string | undefined;
1
+ export declare function getSourceDirname(): string;
2
+ export declare function sleep(delay: number): Promise<void>;
3
+ export declare function rimraf(filepath: string): Promise<void>;
4
+ export declare function rimrafSync(filepath: string): void;
5
+ export declare function getProperty(target: any, prop: PropertyKey): any;
6
+ export declare function getEggOptions(): {
7
+ baseDir: string;
8
+ framework: string | undefined;
10
9
  };
11
- //#endregion
12
- export { getEggOptions, getProperty, getSourceDirname, rimraf, rimrafSync, sleep };
package/dist/lib/utils.js CHANGED
@@ -1,3 +1,69 @@
1
- import { getEggOptions, getProperty, getSourceDirname, rimraf, rimrafSync, sleep } from "../utils-MhP_Krx1.js";
2
-
3
- export { getEggOptions, getProperty, getSourceDirname, rimraf, rimrafSync, sleep };
1
+ import { rm } from 'node:fs/promises';
2
+ import { rmSync } from 'node:fs';
3
+ import path from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
5
+ import { scheduler } from 'node:timers/promises';
6
+ export function getSourceDirname() {
7
+ if (typeof __dirname !== 'undefined') {
8
+ return path.dirname(__dirname);
9
+ }
10
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
11
+ // @ts-ignore
12
+ return path.dirname(path.dirname(fileURLToPath(import.meta.url)));
13
+ }
14
+ export async function sleep(delay) {
15
+ await scheduler.wait(delay);
16
+ }
17
+ export async function rimraf(filepath) {
18
+ await rm(filepath, { force: true, recursive: true });
19
+ }
20
+ export function rimrafSync(filepath) {
21
+ rmSync(filepath, { force: true, recursive: true });
22
+ }
23
+ export function getProperty(target, prop) {
24
+ const member = target[prop];
25
+ if (typeof member === 'function') {
26
+ return member.bind(target);
27
+ }
28
+ return member;
29
+ }
30
+ export function getEggOptions() {
31
+ const options = {
32
+ baseDir: process.env.EGG_BASE_DIR ?? process.cwd(),
33
+ framework: process.env.EGG_FRAMEWORK,
34
+ };
35
+ return options;
36
+ }
37
+ // const hasOwnProperty = Object.prototype.hasOwnProperty;
38
+ // /**
39
+ // * Merge the property descriptors of `src` into `dest`
40
+ // *
41
+ // * @param {object} dest Object to add descriptors to
42
+ // * @param {object} src Object to clone descriptors from
43
+ // * @param {boolean} [redefine=true] Redefine `dest` properties with `src` properties
44
+ // * @return {object} Reference to dest
45
+ // * @public
46
+ // */
47
+ // function merge(dest, src, redefine) {
48
+ // if (!dest) {
49
+ // throw new TypeError('argument dest is required');
50
+ // }
51
+ // if (!src) {
52
+ // throw new TypeError('argument src is required');
53
+ // }
54
+ // if (redefine === undefined) {
55
+ // // Default to true
56
+ // redefine = true;
57
+ // }
58
+ // Object.getOwnPropertyNames(src).forEach(function forEachOwnPropertyName(name) {
59
+ // if (!redefine && hasOwnProperty.call(dest, name)) {
60
+ // // Skip descriptor
61
+ // return;
62
+ // }
63
+ // // Copy descriptor
64
+ // const descriptor = Object.getOwnPropertyDescriptor(src, name);
65
+ // Object.defineProperty(dest, name, descriptor);
66
+ // });
67
+ // return dest;
68
+ // }
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2pDLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUM3QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRCxNQUFNLFVBQVUsZ0JBQWdCO0lBQzlCLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFDRCw2REFBNkQ7SUFDN0QsYUFBYTtJQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwRSxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxLQUFLLENBQUMsS0FBYTtJQUN2QyxNQUFNLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsTUFBTSxDQUFDLFFBQWdCO0lBQzNDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsUUFBZ0I7SUFDekMsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDckQsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsTUFBVyxFQUFFLElBQWlCO0lBQ3hELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixJQUFJLE9BQU8sTUFBTSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhO0lBQzNCLE1BQU0sT0FBTyxHQUFHO1FBQ2QsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDbEQsU0FBUyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYTtLQUNyQyxDQUFDO0lBQ0YsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVELDBEQUEwRDtBQUUxRCxNQUFNO0FBQ04seURBQXlEO0FBQ3pELEtBQUs7QUFDTCx1REFBdUQ7QUFDdkQsMERBQTBEO0FBQzFELHVGQUF1RjtBQUN2Rix3Q0FBd0M7QUFDeEMsYUFBYTtBQUNiLE1BQU07QUFFTix3Q0FBd0M7QUFDeEMsaUJBQWlCO0FBQ2pCLHdEQUF3RDtBQUN4RCxNQUFNO0FBRU4sZ0JBQWdCO0FBQ2hCLHVEQUF1RDtBQUN2RCxNQUFNO0FBRU4sa0NBQWtDO0FBQ2xDLHlCQUF5QjtBQUN6Qix1QkFBdUI7QUFDdkIsTUFBTTtBQUVOLG9GQUFvRjtBQUNwRiwwREFBMEQ7QUFDMUQsMkJBQTJCO0FBQzNCLGdCQUFnQjtBQUNoQixRQUFRO0FBRVIseUJBQXlCO0FBQ3pCLHFFQUFxRTtBQUNyRSxxREFBcUQ7QUFDckQsUUFBUTtBQUVSLGlCQUFpQjtBQUNqQixJQUFJIn0=
@@ -1,12 +1,8 @@
1
- import "./inject_mocha-Daf1Aj8M.js";
2
-
3
- //#region src/register.d.ts
4
- declare function mochaGlobalSetup(): Promise<void>;
5
- declare function mochaGlobalTeardown(): Promise<void>;
6
- declare const mochaHooks: {
7
- beforeAll(): Promise<void>;
8
- afterEach(): Promise<void>;
9
- afterAll(): Promise<void>;
1
+ export declare function mochaGlobalSetup(): Promise<void>;
2
+ export declare function mochaGlobalTeardown(): Promise<void>;
3
+ export declare const mochaHooks: {
4
+ beforeAll(): Promise<void>;
5
+ afterEach(): Promise<void>;
6
+ afterAll(): Promise<void>;
10
7
  };
11
- //#endregion
12
- export { mochaGlobalSetup, mochaGlobalTeardown, mochaHooks };
8
+ import './inject_mocha.ts';
package/dist/register.js CHANGED
@@ -1,58 +1,44 @@
1
- import "./inject_mocha-BVf8v6El.js";
2
- import "./mock_http_server-De0r07gr.js";
3
- import "./utils-MhP_Krx1.js";
4
- import "./supertest-Cg412Los.js";
5
- import "./format_options-LRnReKde.js";
6
- import "./cluster-CA_hr9eV.js";
7
- import "./context-BIduDy1M.js";
8
- import "./mock_custom_loader-f_tHRojG.js";
9
- import "./mock_agent-CxT7Q0_N.js";
10
- import "./mock_httpclient-B6UVI7GS.js";
11
- import "./types-CPNMyF89.js";
12
- import "./application-LrKwuOKn.js";
13
- import "./agent-DZ_fHoxJ.js";
14
- import "./app-6Bn3F5Uw.js";
15
- import "./restore-CVQYXquh.js";
16
- import "./util-BpppqTXv.js";
17
- import "./app-CoypamK1.js";
18
- import "./agent-BKYkjoCx.js";
19
- import { closeAgent, setupAgent } from "./agent_handler-DeUtoRVT.js";
20
- import { getApp } from "./app_handler-CkiK6fyC.js";
21
- import { proxyMock } from "./src-D22EjdGo.js";
22
- import "./inject_context-BxpcF-ds.js";
23
- import { debuglog } from "node:util";
24
-
25
- //#region src/register.ts
26
- const debug = debuglog("egg/mock/register");
27
- async function mochaGlobalSetup() {
28
- debug("mochaGlobalSetup, agent.setupAgent() start");
29
- await setupAgent();
30
- debug("mochaGlobalSetup, agent.setupAgent() end");
1
+ import { debuglog } from 'node:util';
2
+ import { mock } from "./index.js";
3
+ import { setupAgent, closeAgent } from "./lib/agent_handler.js";
4
+ import { getApp } from "./lib/app_handler.js";
5
+ const debug = debuglog('egg/mock/register');
6
+ export async function mochaGlobalSetup() {
7
+ debug('mochaGlobalSetup, agent.setupAgent() start');
8
+ await setupAgent();
9
+ debug('mochaGlobalSetup, agent.setupAgent() end');
31
10
  }
32
- async function mochaGlobalTeardown() {
33
- debug("mochaGlobalTeardown, agent.closeAgent() start");
34
- await closeAgent();
35
- debug("mochaGlobalTeardown, agent.closeAgent() end");
11
+ export async function mochaGlobalTeardown() {
12
+ debug('mochaGlobalTeardown, agent.closeAgent() start');
13
+ await closeAgent();
14
+ debug('mochaGlobalTeardown, agent.closeAgent() end');
36
15
  }
37
- const mochaHooks = {
38
- async beforeAll() {
39
- const app = await getApp();
40
- debug("mochaHooks.beforeAll call, _app: %s", app);
41
- if (app) await app.ready();
42
- },
43
- async afterEach() {
44
- const app = await getApp();
45
- debug("mochaHooks.afterEach call, _app: %s", app);
46
- if (app) await app.backgroundTasksFinished();
47
- await proxyMock.restore();
48
- },
49
- async afterAll() {
50
- if (process.env.ENABLE_MOCHA_PARALLEL) return;
51
- const app = await getApp();
52
- debug("mochaHooks.afterAll call, _app: %s", app);
53
- if (app) await app.close();
54
- }
16
+ export const mochaHooks = {
17
+ async beforeAll() {
18
+ const app = await getApp();
19
+ debug('mochaHooks.beforeAll call, _app: %s', app);
20
+ if (app) {
21
+ await app.ready();
22
+ }
23
+ },
24
+ async afterEach() {
25
+ const app = await getApp();
26
+ debug('mochaHooks.afterEach call, _app: %s', app);
27
+ if (app) {
28
+ await app.backgroundTasksFinished();
29
+ }
30
+ await mock.restore();
31
+ },
32
+ async afterAll() {
33
+ // skip auto app close on parallel
34
+ if (process.env.ENABLE_MOCHA_PARALLEL)
35
+ return;
36
+ const app = await getApp();
37
+ debug('mochaHooks.afterAll call, _app: %s', app);
38
+ if (app) {
39
+ await app.close();
40
+ }
41
+ },
55
42
  };
56
-
57
- //#endregion
58
- export { mochaGlobalSetup, mochaGlobalTeardown, mochaHooks };
43
+ import "./inject_mocha.js";
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTlDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBRTVDLE1BQU0sQ0FBQyxLQUFLLFVBQVUsZ0JBQWdCO0lBQ3BDLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sVUFBVSxFQUFFLENBQUM7SUFDbkIsS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7QUFDcEQsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsbUJBQW1CO0lBQ3ZDLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sVUFBVSxFQUFFLENBQUM7SUFDbkIsS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixLQUFLLENBQUMsU0FBUztRQUNiLE1BQU0sR0FBRyxHQUFHLE1BQU0sTUFBTSxFQUFFLENBQUM7UUFDM0IsS0FBSyxDQUFDLHFDQUFxQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2xELElBQUksR0FBRyxFQUFFLENBQUM7WUFDUixNQUFNLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUNELEtBQUssQ0FBQyxTQUFTO1FBQ2IsTUFBTSxHQUFHLEdBQUcsTUFBTSxNQUFNLEVBQUUsQ0FBQztRQUMzQixLQUFLLENBQUMscUNBQXFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbEQsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNSLE1BQU0sR0FBRyxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDdEMsQ0FBQztRQUNELE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxLQUFLLENBQUMsUUFBUTtRQUNaLGtDQUFrQztRQUNsQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCO1lBQUUsT0FBTztRQUM5QyxNQUFNLEdBQUcsR0FBRyxNQUFNLE1BQU0sRUFBRSxDQUFDO1FBQzNCLEtBQUssQ0FBQyxvQ0FBb0MsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNqRCxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1IsTUFBTSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7Q0FDRixDQUFDO0FBRUYsT0FBTyxtQkFBbUIsQ0FBQyJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eggjs/mock",
3
- "version": "7.0.0-beta.20",
3
+ "version": "7.0.0-beta.21",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -76,12 +76,12 @@
76
76
  "sdk-base": "^5.0.1",
77
77
  "urllib": "^4.8.2",
78
78
  "utility": "^2.5.0",
79
- "@eggjs/supertest": "9.0.0-beta.20",
80
- "@eggjs/utils": "5.0.0-beta.20",
81
- "@eggjs/extend2": "5.0.0-beta.20"
79
+ "@eggjs/extend2": "5.0.0-beta.21",
80
+ "@eggjs/utils": "5.0.0-beta.21",
81
+ "@eggjs/supertest": "9.0.0-beta.21"
82
82
  },
83
83
  "peerDependencies": {
84
- "egg": "4.1.0-beta.20"
84
+ "egg": "4.1.0-beta.21"
85
85
  },
86
86
  "devDependencies": {
87
87
  "@eggjs/tegg": "^3.2.2",
@@ -92,10 +92,10 @@
92
92
  "egg-errors": "^2.3.2",
93
93
  "tsdown": "^0.15.4",
94
94
  "typescript": "^5.9.3",
95
- "@eggjs/tracer": "4.0.0-beta.20"
95
+ "@eggjs/tracer": "4.0.0-beta.21"
96
96
  },
97
97
  "scripts": {
98
- "build": "tsdown",
98
+ "build": "tsdown && rimraf dist && tsc -b --clean && tsc",
99
99
  "lint": "oxlint",
100
100
  "typecheck": "tsc --noEmit",
101
101
  "test": "vitest run"
@@ -1,111 +0,0 @@
1
- import { rimraf, sleep } from "./utils-MhP_Krx1.js";
2
- import { formatOptions } from "./format_options-LRnReKde.js";
3
- import { context } from "./context-BIduDy1M.js";
4
- import { setCustomLoader } from "./mock_custom_loader-f_tHRojG.js";
5
- import { APP_INIT } from "./util-BpppqTXv.js";
6
- import path from "node:path";
7
- import { debuglog } from "node:util";
8
- import { importModule } from "@eggjs/utils";
9
- import { Base } from "sdk-base";
10
- import { detectPort } from "detect-port";
11
-
12
- //#region src/lib/parallel/agent.ts
13
- const debug = debuglog("egg/mock/lib/parallel/agent");
14
- var MockAgent = class extends Base {
15
- baseDir;
16
- [APP_INIT] = false;
17
- #initOnListeners = /* @__PURE__ */ new Set();
18
- #initOnceListeners = /* @__PURE__ */ new Set();
19
- _instance;
20
- constructor(options) {
21
- super({ initMethod: "_init" });
22
- this.options = options;
23
- this.baseDir = this.options.baseDir;
24
- }
25
- async _init() {
26
- if (this.options.beforeInit) {
27
- await this.options.beforeInit(this);
28
- delete this.options.beforeInit;
29
- }
30
- if (this.options.clean !== false) {
31
- const logDir = path.join(this.options.baseDir, "logs");
32
- try {
33
- await rimraf(logDir);
34
- } catch (err) {
35
- console.error(`remove log dir ${logDir} failed: ${err.stack}`);
36
- }
37
- const runDir = path.join(this.options.baseDir, "run");
38
- try {
39
- await rimraf(runDir);
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
- Object.assign(agent.context, context);
50
- setCustomLoader(agent);
51
- debug("agent instantiate");
52
- this[APP_INIT] = true;
53
- debug("this[APP_INIT] = true");
54
- this.#bindEvents();
55
- await agent.ready();
56
- const msg = {
57
- action: "egg-ready",
58
- data: this.options
59
- };
60
- agent.messenger.onMessage(msg);
61
- debug("agent ready");
62
- }
63
- #bindEvents() {
64
- debug("bind cache events to agent");
65
- for (const args of this.#initOnListeners) {
66
- debug("on(%s), use cache and pass to agent", args);
67
- this._instance.on(args[0], args[1]);
68
- this.removeListener(args[0], args[1]);
69
- }
70
- for (const args of this.#initOnceListeners) {
71
- debug("once(%s), use cache and pass to agent", args);
72
- this._instance.once(args[0], args[1]);
73
- this.removeListener(args[0], args[1]);
74
- }
75
- }
76
- on(...args) {
77
- if (this[APP_INIT]) {
78
- debug("on(%s), pass to agent", args);
79
- this._instance.on(args[0], args[1]);
80
- } else {
81
- debug("on(%s), cache it because agent has not init", args);
82
- this.#initOnListeners.add(args);
83
- super.on(args[0], args[1]);
84
- }
85
- return this;
86
- }
87
- once(...args) {
88
- if (this[APP_INIT]) {
89
- debug("once(%s), pass to agent", args);
90
- this._instance.once(args[0], args[1]);
91
- } else {
92
- debug("once(%s), cache it because agent has not init", args);
93
- this.#initOnceListeners.add(args);
94
- super.on(args[0], args[1]);
95
- }
96
- return this;
97
- }
98
- /**
99
- * close agent
100
- */
101
- async _close() {
102
- if (this._instance) await this._instance.close();
103
- else await sleep(200);
104
- }
105
- };
106
- function createAgent(options) {
107
- return new MockAgent(formatOptions(options));
108
- }
109
-
110
- //#endregion
111
- export { MockAgent, createAgent };
@@ -1,24 +0,0 @@
1
- import { MockApplicationOptions, MockOptions } from "./types-CjZ-JeCo.js";
2
- import { APP_INIT } from "./util-1xYBaaoh.js";
3
- import { Agent } from "egg";
4
- import { Base } from "sdk-base";
5
-
6
- //#region src/lib/parallel/agent.d.ts
7
- declare class MockAgent extends Base {
8
- #private;
9
- options: MockApplicationOptions;
10
- baseDir: string;
11
- [APP_INIT]: boolean;
12
- _instance: Agent;
13
- constructor(options: MockApplicationOptions);
14
- _init(): Promise<void>;
15
- on(...args: any[]): this;
16
- once(...args: any[]): this;
17
- /**
18
- * close agent
19
- */
20
- _close(): Promise<void>;
21
- }
22
- declare function createAgent(options: MockOptions): MockAgent;
23
- //#endregion
24
- export { MockAgent, createAgent };
@@ -1,48 +0,0 @@
1
- import { getMockAgent, restoreMockAgent } from "./mock_agent-CxT7Q0_N.js";
2
- import { createMockHttpClient } from "./mock_httpclient-B6UVI7GS.js";
3
- import { Agent } from "egg";
4
- import { mock, restore } from "mm";
5
-
6
- //#region src/app/extend/agent.ts
7
- var AgentUnittest = class extends Agent {
8
- _mockHttpClient;
9
- /**
10
- * mock httpclient
11
- * @alias mockHttpClient
12
- * @function App#mockHttpclient
13
- */
14
- mockHttpclient(mockUrl, mockMethod, mockResult) {
15
- return this.mockHttpClient(mockUrl, mockMethod, mockResult);
16
- }
17
- /**
18
- * mock httpclient
19
- * @function App#mockHttpClient
20
- */
21
- mockHttpClient(mockUrl, mockMethod, mockResult) {
22
- if (!this._mockHttpClient) this._mockHttpClient = createMockHttpClient(this);
23
- return this._mockHttpClient(mockUrl, mockMethod, mockResult);
24
- }
25
- /**
26
- * get mock httpclient agent
27
- * @function Agent#mockHttpclientAgent
28
- */
29
- mockAgent() {
30
- return getMockAgent(this);
31
- }
32
- async mockAgentRestore() {
33
- await restoreMockAgent();
34
- }
35
- /**
36
- * @see mm#restore
37
- * @function Agent#mockRestore
38
- */
39
- mockRestore = restore;
40
- /**
41
- * @see mm
42
- * @function Agent#mm
43
- */
44
- mm = mock;
45
- };
46
-
47
- //#endregion
48
- export { AgentUnittest };
@@ -1,26 +0,0 @@
1
- import { getEggOptions } from "./utils-MhP_Krx1.js";
2
- import { createAgent } from "./agent-BKYkjoCx.js";
3
- import { debuglog } from "node:util";
4
-
5
- //#region src/lib/agent_handler.ts
6
- const debug = debuglog("egg/mock/lib/agent_handler");
7
- let agent;
8
- async function setupAgent() {
9
- debug("setupAgent call, env.ENABLE_MOCHA_PARALLEL: %s, process.env.AUTO_AGENT: %s, agent: %s", process.env.ENABLE_MOCHA_PARALLEL, process.env.AUTO_AGENT, !!agent);
10
- if (agent) {
11
- await agent.ready();
12
- return agent;
13
- }
14
- if (process.env.ENABLE_MOCHA_PARALLEL && process.env.AUTO_AGENT) {
15
- agent = createAgent(getEggOptions());
16
- await agent.ready();
17
- }
18
- return agent;
19
- }
20
- async function closeAgent() {
21
- debug("setupAgent call, agent: %s", !!agent);
22
- if (agent) await agent.close();
23
- }
24
-
25
- //#endregion
26
- export { closeAgent, setupAgent };