@eggjs/mock 6.0.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +547 -0
  3. package/README.zh_CN.md +512 -0
  4. package/dist/commonjs/app/extend/agent.d.ts +33 -0
  5. package/dist/commonjs/app/extend/agent.js +49 -0
  6. package/dist/commonjs/app/extend/application.d.ts +175 -0
  7. package/dist/commonjs/app/extend/application.js +448 -0
  8. package/dist/commonjs/app/middleware/cluster_app_mock.d.ts +3 -0
  9. package/dist/commonjs/app/middleware/cluster_app_mock.js +100 -0
  10. package/dist/commonjs/app.d.ts +6 -0
  11. package/dist/commonjs/app.js +20 -0
  12. package/dist/commonjs/bootstrap.d.ts +4 -0
  13. package/dist/commonjs/bootstrap.js +58 -0
  14. package/dist/commonjs/index.d.ts +76 -0
  15. package/dist/commonjs/index.js +99 -0
  16. package/dist/commonjs/index.test-d.d.ts +1 -0
  17. package/dist/commonjs/index.test-d.js +43 -0
  18. package/dist/commonjs/lib/agent_handler.d.ts +3 -0
  19. package/dist/commonjs/lib/agent_handler.js +28 -0
  20. package/dist/commonjs/lib/app.d.ts +28 -0
  21. package/dist/commonjs/lib/app.js +303 -0
  22. package/dist/commonjs/lib/app_handler.d.ts +5 -0
  23. package/dist/commonjs/lib/app_handler.js +67 -0
  24. package/dist/commonjs/lib/cluster.d.ts +114 -0
  25. package/dist/commonjs/lib/cluster.js +337 -0
  26. package/dist/commonjs/lib/context.d.ts +1 -0
  27. package/dist/commonjs/lib/context.js +16 -0
  28. package/dist/commonjs/lib/format_options.d.ts +5 -0
  29. package/dist/commonjs/lib/format_options.js +100 -0
  30. package/dist/commonjs/lib/inject_context.d.ts +6 -0
  31. package/dist/commonjs/lib/inject_context.js +132 -0
  32. package/dist/commonjs/lib/mock_agent.d.ts +5 -0
  33. package/dist/commonjs/lib/mock_agent.js +49 -0
  34. package/dist/commonjs/lib/mock_custom_loader.d.ts +1 -0
  35. package/dist/commonjs/lib/mock_custom_loader.js +37 -0
  36. package/dist/commonjs/lib/mock_http_server.d.ts +2 -0
  37. package/dist/commonjs/lib/mock_http_server.js +24 -0
  38. package/dist/commonjs/lib/mock_httpclient.d.ts +35 -0
  39. package/dist/commonjs/lib/mock_httpclient.js +147 -0
  40. package/dist/commonjs/lib/parallel/agent.d.ts +20 -0
  41. package/dist/commonjs/lib/parallel/agent.js +125 -0
  42. package/dist/commonjs/lib/parallel/app.d.ts +20 -0
  43. package/dist/commonjs/lib/parallel/app.js +115 -0
  44. package/dist/commonjs/lib/parallel/util.d.ts +3 -0
  45. package/dist/commonjs/lib/parallel/util.js +77 -0
  46. package/dist/commonjs/lib/prerequire.d.ts +1 -0
  47. package/dist/commonjs/lib/prerequire.js +26 -0
  48. package/dist/commonjs/lib/request_call_function.d.ts +1 -0
  49. package/dist/commonjs/lib/request_call_function.js +52 -0
  50. package/dist/commonjs/lib/restore.d.ts +1 -0
  51. package/dist/commonjs/lib/restore.js +16 -0
  52. package/dist/commonjs/lib/start-cluster.d.ts +2 -0
  53. package/dist/commonjs/lib/start-cluster.js +23 -0
  54. package/dist/commonjs/lib/supertest.d.ts +11 -0
  55. package/dist/commonjs/lib/supertest.js +48 -0
  56. package/dist/commonjs/lib/tmp/empty.d.ts +1 -0
  57. package/dist/commonjs/lib/tmp/empty.js +3 -0
  58. package/dist/commonjs/lib/types.d.ts +60 -0
  59. package/dist/commonjs/lib/types.js +3 -0
  60. package/dist/commonjs/lib/utils.d.ts +9 -0
  61. package/dist/commonjs/lib/utils.js +80 -0
  62. package/dist/commonjs/package.json +3 -0
  63. package/dist/commonjs/register.d.ts +8 -0
  64. package/dist/commonjs/register.js +80 -0
  65. package/dist/esm/app/extend/agent.d.ts +33 -0
  66. package/dist/esm/app/extend/agent.js +46 -0
  67. package/dist/esm/app/extend/application.d.ts +175 -0
  68. package/dist/esm/app/extend/application.js +442 -0
  69. package/dist/esm/app/middleware/cluster_app_mock.d.ts +3 -0
  70. package/dist/esm/app/middleware/cluster_app_mock.js +98 -0
  71. package/dist/esm/app.d.ts +6 -0
  72. package/dist/esm/app.js +17 -0
  73. package/dist/esm/bootstrap.d.ts +4 -0
  74. package/dist/esm/bootstrap.js +16 -0
  75. package/dist/esm/index.d.ts +76 -0
  76. package/dist/esm/index.js +90 -0
  77. package/dist/esm/index.test-d.d.ts +1 -0
  78. package/dist/esm/index.test-d.js +42 -0
  79. package/dist/esm/lib/agent_handler.d.ts +3 -0
  80. package/dist/esm/lib/agent_handler.js +24 -0
  81. package/dist/esm/lib/app.d.ts +28 -0
  82. package/dist/esm/lib/app.js +295 -0
  83. package/dist/esm/lib/app_handler.d.ts +5 -0
  84. package/dist/esm/lib/app_handler.js +61 -0
  85. package/dist/esm/lib/cluster.d.ts +114 -0
  86. package/dist/esm/lib/cluster.js +328 -0
  87. package/dist/esm/lib/context.d.ts +1 -0
  88. package/dist/esm/lib/context.js +13 -0
  89. package/dist/esm/lib/format_options.d.ts +5 -0
  90. package/dist/esm/lib/format_options.js +94 -0
  91. package/dist/esm/lib/inject_context.d.ts +6 -0
  92. package/dist/esm/lib/inject_context.js +126 -0
  93. package/dist/esm/lib/mock_agent.d.ts +5 -0
  94. package/dist/esm/lib/mock_agent.js +45 -0
  95. package/dist/esm/lib/mock_custom_loader.d.ts +1 -0
  96. package/dist/esm/lib/mock_custom_loader.js +34 -0
  97. package/dist/esm/lib/mock_http_server.d.ts +2 -0
  98. package/dist/esm/lib/mock_http_server.js +18 -0
  99. package/dist/esm/lib/mock_httpclient.d.ts +35 -0
  100. package/dist/esm/lib/mock_httpclient.js +144 -0
  101. package/dist/esm/lib/parallel/agent.d.ts +20 -0
  102. package/dist/esm/lib/parallel/agent.js +117 -0
  103. package/dist/esm/lib/parallel/app.d.ts +20 -0
  104. package/dist/esm/lib/parallel/app.js +110 -0
  105. package/dist/esm/lib/parallel/util.d.ts +3 -0
  106. package/dist/esm/lib/parallel/util.js +73 -0
  107. package/dist/esm/lib/prerequire.d.ts +1 -0
  108. package/dist/esm/lib/prerequire.js +25 -0
  109. package/dist/esm/lib/request_call_function.d.ts +1 -0
  110. package/dist/esm/lib/request_call_function.js +47 -0
  111. package/dist/esm/lib/restore.d.ts +1 -0
  112. package/dist/esm/lib/restore.js +13 -0
  113. package/dist/esm/lib/start-cluster.d.ts +2 -0
  114. package/dist/esm/lib/start-cluster.js +18 -0
  115. package/dist/esm/lib/supertest.d.ts +11 -0
  116. package/dist/esm/lib/supertest.js +40 -0
  117. package/dist/esm/lib/tmp/empty.d.ts +1 -0
  118. package/dist/esm/lib/tmp/empty.js +2 -0
  119. package/dist/esm/lib/types.d.ts +60 -0
  120. package/dist/esm/lib/types.js +2 -0
  121. package/dist/esm/lib/utils.d.ts +9 -0
  122. package/dist/esm/lib/utils.js +69 -0
  123. package/dist/esm/package.json +3 -0
  124. package/dist/esm/register.d.ts +8 -0
  125. package/dist/esm/register.js +75 -0
  126. package/dist/package.json +4 -0
  127. package/package.json +131 -0
  128. package/src/app/extend/agent.ts +56 -0
  129. package/src/app/extend/application.ts +512 -0
  130. package/src/app/middleware/cluster_app_mock.ts +101 -0
  131. package/src/app.ts +18 -0
  132. package/src/bootstrap.ts +25 -0
  133. package/src/index.d.ts +193 -0
  134. package/src/index.test-d.ts +47 -0
  135. package/src/index.ts +110 -0
  136. package/src/lib/agent_handler.ts +28 -0
  137. package/src/lib/app.ts +313 -0
  138. package/src/lib/app_handler.ts +69 -0
  139. package/src/lib/cluster.ts +363 -0
  140. package/src/lib/context.ts +14 -0
  141. package/src/lib/format_options.ts +103 -0
  142. package/src/lib/inject_context.ts +134 -0
  143. package/src/lib/mock_agent.ts +57 -0
  144. package/src/lib/mock_custom_loader.ts +36 -0
  145. package/src/lib/mock_http_server.ts +19 -0
  146. package/src/lib/mock_httpclient.ts +181 -0
  147. package/src/lib/parallel/agent.ts +128 -0
  148. package/src/lib/parallel/app.ts +123 -0
  149. package/src/lib/parallel/util.ts +66 -0
  150. package/src/lib/prerequire.ts +25 -0
  151. package/src/lib/request_call_function.ts +49 -0
  152. package/src/lib/restore.ts +14 -0
  153. package/src/lib/start-cluster.ts +23 -0
  154. package/src/lib/supertest.ts +45 -0
  155. package/src/lib/tmp/.gitkeep +0 -0
  156. package/src/lib/tmp/empty.ts +0 -0
  157. package/src/lib/types.ts +72 -0
  158. package/src/lib/utils.ts +82 -0
  159. package/src/register.ts +80 -0
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const node_util_1 = require("node:util");
4
+ const debug = (0, node_util_1.debuglog)('@eggjs/mock/app/middleware/cluster_app_mock');
5
+ exports.default = () => {
6
+ return async function clusterAppMock(ctx, next) {
7
+ // use originalUrl to make sure other middlewares can't change request url
8
+ if (ctx.originalUrl !== '/__egg_mock_call_function') {
9
+ return next();
10
+ }
11
+ debug('%s %s, body: %j', ctx.method, ctx.url, ctx.request.body);
12
+ const { method, property, args, needResult } = ctx.request.body;
13
+ if (!method) {
14
+ ctx.status = 422;
15
+ ctx.body = {
16
+ success: false,
17
+ error: 'Missing method',
18
+ };
19
+ return;
20
+ }
21
+ if (args && !Array.isArray(args)) {
22
+ ctx.status = 422;
23
+ ctx.body = {
24
+ success: false,
25
+ error: 'args should be an Array instance',
26
+ };
27
+ return;
28
+ }
29
+ if (property) {
30
+ // method: '__getter__' and property: 'config'
31
+ if (method === '__getter__') {
32
+ if (!ctx.app[property]) {
33
+ debug('property %s not exists on app', property);
34
+ ctx.status = 422;
35
+ ctx.body = {
36
+ success: false,
37
+ error: `property "${property}" not exists on app`,
38
+ };
39
+ return;
40
+ }
41
+ ctx.body = { success: true, result: ctx.app[property] };
42
+ return;
43
+ }
44
+ if (!ctx.app[property] || typeof ctx.app[property][method] !== 'function') {
45
+ debug('property %s.%s not exists on app', property, method);
46
+ ctx.status = 422;
47
+ ctx.body = {
48
+ success: false,
49
+ error: `method "${method}" not exists on app.${property}`,
50
+ };
51
+ return;
52
+ }
53
+ }
54
+ else {
55
+ if (typeof ctx.app[method] !== 'function') {
56
+ debug('method %s not exists on app', method);
57
+ ctx.status = 422;
58
+ ctx.body = {
59
+ success: false,
60
+ error: `method "${method}" not exists on app`,
61
+ };
62
+ return;
63
+ }
64
+ }
65
+ debug('call %s with %j', method, args);
66
+ for (let i = 0; i < args.length; i++) {
67
+ const arg = args[i];
68
+ if (arg && typeof arg === 'object') {
69
+ // convert __egg_mock_type back to function
70
+ if (arg.__egg_mock_type === 'function') {
71
+ // eslint-disable-next-line
72
+ args[i] = eval(`(function() { return ${arg.value} })()`);
73
+ }
74
+ else if (arg.__egg_mock_type === 'error') {
75
+ const err = new Error(arg.message);
76
+ err.name = arg.name;
77
+ err.stack = arg.stack;
78
+ for (const key in arg) {
79
+ if (key !== 'name' && key !== 'message' && key !== 'stack' && key !== '__egg_mock_type') {
80
+ err[key] = arg[key];
81
+ }
82
+ }
83
+ args[i] = err;
84
+ }
85
+ }
86
+ }
87
+ const target = property ? ctx.app[property] : ctx.app;
88
+ const fn = target[method];
89
+ try {
90
+ Promise.resolve(fn.call(target, ...args)).then(result => {
91
+ ctx.body = needResult ? { success: true, result } : { success: true };
92
+ });
93
+ }
94
+ catch (err) {
95
+ ctx.status = 500;
96
+ ctx.body = { success: false, error: err.message };
97
+ }
98
+ };
99
+ };
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3Rlcl9hcHBfbW9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvbWlkZGxld2FyZS9jbHVzdGVyX2FwcF9tb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUNBQXFDO0FBR3JDLE1BQU0sS0FBSyxHQUFHLElBQUEsb0JBQVEsRUFBQyw2Q0FBNkMsQ0FBQyxDQUFDO0FBRXRFLGtCQUFlLEdBQUcsRUFBRTtJQUNsQixPQUFPLEtBQUssVUFBVSxjQUFjLENBQUMsR0FBc0IsRUFBRSxJQUFVO1FBQ3JFLDBFQUEwRTtRQUMxRSxJQUFJLEdBQUcsQ0FBQyxXQUFXLEtBQUssMkJBQTJCLEVBQUUsQ0FBQztZQUNwRCxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxLQUFLLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ2hFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO1lBQ2pCLEdBQUcsQ0FBQyxJQUFJLEdBQUc7Z0JBQ1QsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsS0FBSyxFQUFFLGdCQUFnQjthQUN4QixDQUFDO1lBQ0YsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztZQUNqQixHQUFHLENBQUMsSUFBSSxHQUFHO2dCQUNULE9BQU8sRUFBRSxLQUFLO2dCQUNkLEtBQUss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
@@ -0,0 +1,6 @@
1
+ import { ILifecycleBoot, EggCore } from '@eggjs/core';
2
+ export default class Boot implements ILifecycleBoot {
3
+ #private;
4
+ constructor(app: EggCore);
5
+ configWillLoad(): void;
6
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class Boot {
4
+ #app;
5
+ constructor(app) {
6
+ this.#app = app;
7
+ }
8
+ configWillLoad() {
9
+ // make sure clusterAppMock position before securities
10
+ const index = this.#app.config.coreMiddleware.indexOf('securities');
11
+ if (index >= 0) {
12
+ this.#app.config.coreMiddleware.splice(index, 0, 'clusterAppMock');
13
+ }
14
+ else {
15
+ this.#app.config.coreMiddleware.push('clusterAppMock');
16
+ }
17
+ }
18
+ }
19
+ exports.default = Boot;
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLE1BQXFCLElBQUk7SUFDdkIsSUFBSSxDQUFVO0lBQ2QsWUFBWSxHQUFZO1FBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxjQUFjO1FBQ1osc0RBQXNEO1FBQ3RELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEUsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNyRSxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBZkQsdUJBZUMifQ==
@@ -0,0 +1,4 @@
1
+ import { strict as assert } from 'node:assert';
2
+ import mm, { mock } from './index.js';
3
+ declare const app: import("./index.js").MockApplication;
4
+ export { assert, app, mm, mock, };
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.mock = exports.mm = exports.app = exports.assert = void 0;
40
+ const node_assert_1 = require("node:assert");
41
+ Object.defineProperty(exports, "assert", { enumerable: true, get: function () { return node_assert_1.strict; } });
42
+ const node_path_1 = __importDefault(require("node:path"));
43
+ const utility_1 = require("utility");
44
+ const index_js_1 = __importStar(require("./index.js"));
45
+ exports.mm = index_js_1.default;
46
+ Object.defineProperty(exports, "mock", { enumerable: true, get: function () { return index_js_1.mock; } });
47
+ const app_handler_js_1 = require("./lib/app_handler.js");
48
+ const utils_js_1 = require("./lib/utils.js");
49
+ const options = (0, utils_js_1.getEggOptions)();
50
+ // throw error when an egg plugin test is using bootstrap
51
+ const pkgInfo = (0, utility_1.readJSONSync)(node_path_1.default.join(options.baseDir || process.cwd(), 'package.json'));
52
+ if (pkgInfo.eggPlugin) {
53
+ throw new Error('DO NOT USE bootstrap to test plugin');
54
+ }
55
+ (0, app_handler_js_1.setupApp)();
56
+ const app = (0, app_handler_js_1.getBootstrapApp)();
57
+ exports.app = app;
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jvb3RzdHJhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBK0M7QUFvQjdDLHVGQXBCaUIsb0JBQU0sT0FvQmpCO0FBbkJSLDBEQUE2QjtBQUM3QixxQ0FBdUM7QUFDdkMsdURBQXNDO0FBbUJwQyxhQW5CSyxrQkFBRSxDQW1CTDtBQUNGLHFGQXBCVyxlQUFJLE9Bb0JYO0FBbkJOLHlEQUFpRTtBQUNqRSw2Q0FBK0M7QUFFL0MsTUFBTSxPQUFPLEdBQUcsSUFBQSx3QkFBYSxHQUFFLENBQUM7QUFFaEMseURBQXlEO0FBQ3pELE1BQU0sT0FBTyxHQUFHLElBQUEsc0JBQVksRUFBQyxtQkFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDO0FBQzFGLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztBQUN6RCxDQUFDO0FBRUQsSUFBQSx5QkFBUSxHQUFFLENBQUM7QUFFWCxNQUFNLEdBQUcsR0FBRyxJQUFBLGdDQUFlLEdBQUUsQ0FBQztBQUk1QixrQkFBRyJ9
@@ -0,0 +1,76 @@
1
+ import { mock as _mock } from 'mm';
2
+ import { createCluster } from './lib/cluster.js';
3
+ import { createApp } from './lib/app.js';
4
+ import { restore } from './lib/restore.js';
5
+ import { setGetAppCallback } from './lib/app_handler.js';
6
+ import ApplicationUnittest from './app/extend/application.js';
7
+ declare const mock: {
8
+ restore: typeof restore;
9
+ /**
10
+ * Create a egg mocked application
11
+ * @function mm#app
12
+ * @param {Object} [options]
13
+ * - {String} baseDir - The directory of the application
14
+ * - {Object} plugins - Custom you plugins
15
+ * - {String} framework - The directory of the egg framework
16
+ * - {Boolean} [true] cache - Cache application based on baseDir
17
+ * - {Boolean} [true] coverage - Switch on process coverage, but it'll be slower
18
+ * - {Boolean} [true] clean - Remove $baseDir/logs
19
+ * @return {App} return {@link Application}
20
+ * @example
21
+ * ```js
22
+ * const app = mm.app();
23
+ * ```
24
+ */
25
+ app: typeof createApp;
26
+ /**
27
+ * Create a egg mocked cluster application
28
+ * @function mm#cluster
29
+ * @see ClusterApplication
30
+ */
31
+ cluster: typeof createCluster;
32
+ /**
33
+ * mock the serverEnv of Egg
34
+ * @member {Function} mm#env
35
+ * @param {String} env - contain default, test, prod, local, unittest
36
+ * @see https://github.com/eggjs/egg-core/blob/master/lib/loader/egg_loader.js#L78
37
+ */
38
+ env(env: string): void;
39
+ /**
40
+ * mock console level
41
+ * @param {String} level - logger level
42
+ */
43
+ consoleLevel(level: string): void;
44
+ home(homePath?: string): void;
45
+ setGetAppCallback: typeof setGetAppCallback;
46
+ isMocked: typeof import("mm").isMocked;
47
+ mock: typeof _mock;
48
+ mm: typeof _mock;
49
+ datas: typeof import("mm").datas;
50
+ mockDatas: typeof import("mm").datas;
51
+ data: typeof import("mm").data;
52
+ mockData: typeof import("mm").data;
53
+ dataWithAsyncDispose: typeof import("mm").dataWithAsyncDispose;
54
+ empty: typeof import("mm").empty;
55
+ mockEmpty: typeof import("mm").empty;
56
+ error: typeof import("mm").error;
57
+ mockError: typeof import("mm").error;
58
+ spy: typeof import("mm").spy;
59
+ errorOnce: typeof import("mm").errorOnce;
60
+ syncError: typeof import("mm").syncError;
61
+ syncEmpty: typeof import("mm").syncEmpty;
62
+ syncData: typeof import("mm").syncData;
63
+ http: {
64
+ request: (url: import("mm").RequestURL, data: import("mm").ResponseData, headers?: Record<string, any>, delay?: number) => void;
65
+ requestError: (url: import("mm").RequestURL, reqError?: import("mm").MockError, resError?: import("mm").MockError, delay?: number) => void;
66
+ };
67
+ https: {
68
+ request: (url: import("mm").RequestURL, data: import("mm").ResponseData, headers?: Record<string, any>, delay?: number) => void;
69
+ requestError: (url: import("mm").RequestURL, reqError?: import("mm").MockError, resError?: import("mm").MockError, delay?: number) => void;
70
+ };
71
+ spawn: typeof import("mm").spawn;
72
+ classMethod: typeof import("mm").classMethod;
73
+ };
74
+ declare const proxyMock: ((target: any, property: PropertyKey, value?: any) => void) & typeof mock;
75
+ export default proxyMock;
76
+ export { proxyMock as mock, proxyMock as mm, ApplicationUnittest as MockApplication, setGetAppCallback, createApp, createCluster, };
@@ -0,0 +1,99 @@
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.createCluster = exports.createApp = exports.setGetAppCallback = exports.MockApplication = exports.mm = exports.mock = void 0;
7
+ const mm_1 = __importDefault(require("mm"));
8
+ const mm_2 = require("mm");
9
+ const cluster_js_1 = require("./lib/cluster.js");
10
+ Object.defineProperty(exports, "createCluster", { enumerable: true, get: function () { return cluster_js_1.createCluster; } });
11
+ const app_js_1 = require("./lib/app.js");
12
+ Object.defineProperty(exports, "createApp", { enumerable: true, get: function () { return app_js_1.createApp; } });
13
+ // import { getMockAgent } from './lib/mock_agent.js';
14
+ const restore_js_1 = require("./lib/restore.js");
15
+ const app_handler_js_1 = require("./lib/app_handler.js");
16
+ Object.defineProperty(exports, "setGetAppCallback", { enumerable: true, get: function () { return app_handler_js_1.setGetAppCallback; } });
17
+ const application_js_1 = __importDefault(require("./app/extend/application.js"));
18
+ exports.MockApplication = application_js_1.default;
19
+ // egg-bin will set this flag to require files for instrument
20
+ // if (process.env.EGG_BIN_PREREQUIRE) {
21
+ // require('./lib/prerequire');
22
+ // }
23
+ // inherit & extends mm
24
+ const mock = {
25
+ ...mm_1.default,
26
+ restore: restore_js_1.restore,
27
+ /**
28
+ * Create a egg mocked application
29
+ * @function mm#app
30
+ * @param {Object} [options]
31
+ * - {String} baseDir - The directory of the application
32
+ * - {Object} plugins - Custom you plugins
33
+ * - {String} framework - The directory of the egg framework
34
+ * - {Boolean} [true] cache - Cache application based on baseDir
35
+ * - {Boolean} [true] coverage - Switch on process coverage, but it'll be slower
36
+ * - {Boolean} [true] clean - Remove $baseDir/logs
37
+ * @return {App} return {@link Application}
38
+ * @example
39
+ * ```js
40
+ * const app = mm.app();
41
+ * ```
42
+ */
43
+ app: app_js_1.createApp,
44
+ /**
45
+ * Create a egg mocked cluster application
46
+ * @function mm#cluster
47
+ * @see ClusterApplication
48
+ */
49
+ cluster: cluster_js_1.createCluster,
50
+ /**
51
+ * mock the serverEnv of Egg
52
+ * @member {Function} mm#env
53
+ * @param {String} env - contain default, test, prod, local, unittest
54
+ * @see https://github.com/eggjs/egg-core/blob/master/lib/loader/egg_loader.js#L78
55
+ */
56
+ env(env) {
57
+ (0, mm_2.mock)(process.env, 'EGG_MOCK_SERVER_ENV', env);
58
+ (0, mm_2.mock)(process.env, 'EGG_SERVER_ENV', env);
59
+ },
60
+ /**
61
+ * mock console level
62
+ * @param {String} level - logger level
63
+ */
64
+ consoleLevel(level) {
65
+ level = (level || '').toUpperCase();
66
+ (0, mm_2.mock)(process.env, 'EGG_LOG', level);
67
+ },
68
+ home(homePath) {
69
+ if (homePath) {
70
+ (0, mm_2.mock)(process.env, 'EGG_HOME', homePath);
71
+ }
72
+ },
73
+ setGetAppCallback: app_handler_js_1.setGetAppCallback,
74
+ };
75
+ // import mm from '@eggjs/mock';
76
+ const proxyMock = new Proxy(mm_2.mock, {
77
+ apply(target, _, args) {
78
+ return target(args[0], args[1], args[2]);
79
+ },
80
+ get(_target, property, receiver) {
81
+ // import mm from '@eggjs/mock';
82
+ // mm.isMocked(foo, 'bar')
83
+ return Reflect.get(mock, property, receiver);
84
+ },
85
+ });
86
+ exports.mock = proxyMock;
87
+ exports.mm = proxyMock;
88
+ exports.default = proxyMock;
89
+ process.setMaxListeners(100);
90
+ process.once('SIGQUIT', () => {
91
+ process.exit(0);
92
+ });
93
+ process.once('SIGTERM', () => {
94
+ process.exit(0);
95
+ });
96
+ process.once('SIGINT', () => {
97
+ process.exit(0);
98
+ });
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNENBQW9CO0FBQ3BCLDJCQUFtQztBQUNuQyxpREFBaUQ7QUE0Ri9DLDhGQTVGTywwQkFBYSxPQTRGUDtBQTNGZix5Q0FBeUM7QUEwRnZDLDBGQTFGTyxrQkFBUyxPQTBGUDtBQXpGWCxzREFBc0Q7QUFDdEQsaURBQTJDO0FBQzNDLHlEQUF5RDtBQXNGdkQsa0dBdEZPLGtDQUFpQixPQXNGUDtBQXJGbkIsaUZBQThEO0FBb0ZyQywwQkFwRmxCLHdCQUFtQixDQW9GYztBQWxGeEMsNkRBQTZEO0FBQzdELHdDQUF3QztBQUN4QyxpQ0FBaUM7QUFDakMsSUFBSTtBQUVKLHVCQUF1QjtBQUN2QixNQUFNLElBQUksR0FBRztJQUNYLEdBQUcsWUFBRTtJQUNMLE9BQU8sRUFBUCxvQkFBTztJQUVQOzs7Ozs7Ozs7Ozs7Ozs7T0FlRztJQUNILEdBQUcsRUFBRSxrQkFBUztJQUVkOzs7O09BSUc7SUFDSCxPQUFPLEVBQUUsMEJBQWE7SUFFdEI7Ozs7O09BS0c7SUFDSCxHQUFHLENBQUMsR0FBVztRQUNiLElBQUEsU0FBSyxFQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDL0MsSUFBQSxTQUFLLEVBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsWUFBWSxDQUFDLEtBQWE7UUFDeEIsS0FBSyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BDLElBQUEsU0FBSyxFQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLENBQUMsUUFBaUI7UUFDcEIsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLElBQUEsU0FBSyxFQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLEVBQWpCLGtDQUFpQjtDQUNsQixDQUFDO0FBRUYsZ0NBQWdDO0FBQ2hDLE1BQU0sU0FBUyxHQUFHLElBQUksS0FBSyxDQUFDLFNBQUssRUFBRTtJQUNqQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJO1FBQ25CLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUNELEdBQUcsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVE7UUFDN0IsZ0NBQWdDO1FBQ2hDLDBCQUEwQjtRQUMxQixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDO0NBQ0YsQ0FBeUYsQ0FBQztBQUs1RSx5QkFBSTtBQUVKLHVCQUFFO0FBTGpCLGtCQUFlLFNBQVMsQ0FBQztBQVl6QixPQUFPLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRTdCLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRTtJQUMzQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLENBQUMsQ0FBQyxDQUFDO0FBRUgsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO0lBQzNCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQyxDQUFDLENBQUM7QUFFSCxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7SUFDMUIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDLENBQUMsQ0FBQyJ9
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ // import { expectType } from 'tsd';
3
+ // import { Application, Context } from 'egg';
4
+ // import { MockApplication, MockAgent, ResultObject } from '.';
5
+ // import { app, mock, mm } from './bootstrap';
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ // expectType<MockApplication>(app);
8
+ // expectType<Context>(app.currentContext);
9
+ // expectType<Context | undefined>(app.ctxStorage.getStore());
10
+ // expectType<MockApplication>(mock.app());
11
+ // expectType<MockApplication>(mm.app());
12
+ // expectType<MockAgent>(mm.app().mockAgent());
13
+ // expectType<Application>(mm.app().mockHttpclient('url', 'post', { data: 'ok' }));
14
+ // expectType<Application>(mm.app().mockHttpclient('url', 'post', 'data'));
15
+ // expectType<Application>(mm.app().mockHttpclient('url', {
16
+ // data: 'mock response',
17
+ // repeats: 1,
18
+ // }));
19
+ // expectType<Application>(mm.app().mockHttpclient('url', () => {}));
20
+ // expectType<Application>(mm.app().mockHttpclient('url', 'post', () => {}));
21
+ // expectType<Application>(mm.app().mockHttpclient('url', 'get', {
22
+ // data: 'mock response',
23
+ // repeats: 1,
24
+ // }));
25
+ // expectType<void>(app.mockLog());
26
+ // expectType<void>(app.mockLog('logger'));
27
+ // expectType<void>(app.mockLog(app.logger));
28
+ // expectType<void>(app.expectLog('foo string'));
29
+ // expectType<void>(app.expectLog('foo string', 'coreLogger'));
30
+ // expectType<void>(app.expectLog('foo string', app.coreLogger));
31
+ // expectType<void>(app.expectLog(/foo string/));
32
+ // expectType<void>(app.expectLog(/foo string/, 'coreLogger'));
33
+ // expectType<void>(app.expectLog(/foo string/, app.coreLogger));
34
+ // expectType<void>(mm.env('default'));
35
+ // expectType<void>(mm.env('devserver'));
36
+ // expectType<Promise<void>>(app.mockAgentRestore());
37
+ // expectType<Promise<void>>(app.mockRestore());
38
+ // expectType<Promise<void>>(app.mockContextScope(async () => {}));
39
+ // expectType<Promise<void>>(app.mockContextScope(async ctx => {}));
40
+ // expectType<Promise<void>>(app.backgroundTasksFinished());
41
+ // const result: ResultObject = {};
42
+ // expectType<number>(result.status!);
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC1kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luZGV4LnRlc3QtZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0NBQW9DO0FBQ3BDLDhDQUE4QztBQUM5QyxnRUFBZ0U7QUFDaEUsK0NBQStDOztBQUUvQyxvQ0FBb0M7QUFDcEMsMkNBQTJDO0FBQzNDLDhEQUE4RDtBQUM5RCwyQ0FBMkM7QUFDM0MseUNBQXlDO0FBRXpDLCtDQUErQztBQUUvQyxtRkFBbUY7QUFDbkYsMkVBQTJFO0FBQzNFLDJEQUEyRDtBQUMzRCwyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLE9BQU87QUFDUCxxRUFBcUU7QUFDckUsNkVBQTZFO0FBQzdFLGtFQUFrRTtBQUNsRSwyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLE9BQU87QUFFUCxtQ0FBbUM7QUFDbkMsMkNBQTJDO0FBQzNDLDZDQUE2QztBQUM3QyxpREFBaUQ7QUFDakQsK0RBQStEO0FBQy9ELGlFQUFpRTtBQUNqRSxpREFBaUQ7QUFDakQsK0RBQStEO0FBQy9ELGlFQUFpRTtBQUNqRSx1Q0FBdUM7QUFDdkMseUNBQXlDO0FBRXpDLHFEQUFxRDtBQUNyRCxnREFBZ0Q7QUFDaEQsbUVBQW1FO0FBQ25FLG9FQUFvRTtBQUVwRSw0REFBNEQ7QUFFNUQsbUNBQW1DO0FBQ25DLHNDQUFzQyJ9
@@ -0,0 +1,3 @@
1
+ import { MockAgent } from './parallel/agent.js';
2
+ export declare function setupAgent(): Promise<MockAgent>;
3
+ export declare function closeAgent(): Promise<void>;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setupAgent = setupAgent;
4
+ exports.closeAgent = closeAgent;
5
+ const node_util_1 = require("node:util");
6
+ const agent_js_1 = require("./parallel/agent.js");
7
+ const utils_js_1 = require("./utils.js");
8
+ const debug = (0, node_util_1.debuglog)('@eggjs/mock/lib/agent_handler');
9
+ let agent;
10
+ async function setupAgent() {
11
+ 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);
12
+ if (agent) {
13
+ await agent.ready();
14
+ return agent;
15
+ }
16
+ if (process.env.ENABLE_MOCHA_PARALLEL && process.env.AUTO_AGENT) {
17
+ agent = (0, agent_js_1.createAgent)((0, utils_js_1.getEggOptions)());
18
+ await agent.ready();
19
+ }
20
+ return agent;
21
+ }
22
+ async function closeAgent() {
23
+ debug('setupAgent call, agent: %s', !!agent);
24
+ if (agent) {
25
+ await agent.close();
26
+ }
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnRfaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYWdlbnRfaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVFBLGdDQVlDO0FBRUQsZ0NBS0M7QUEzQkQseUNBQXFDO0FBQ3JDLGtEQUE2RDtBQUM3RCx5Q0FBMkM7QUFFM0MsTUFBTSxLQUFLLEdBQUcsSUFBQSxvQkFBUSxFQUFDLCtCQUErQixDQUFDLENBQUM7QUFFeEQsSUFBSSxLQUFnQixDQUFDO0FBRWQsS0FBSyxVQUFVLFVBQVU7SUFDOUIsS0FBSyxDQUFDLHVGQUF1RixFQUMzRixPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1YsTUFBTSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEUsS0FBSyxHQUFHLElBQUEsc0JBQVcsRUFBQyxJQUFBLHdCQUFhLEdBQUUsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFTSxLQUFLLFVBQVUsVUFBVTtJQUM5QixLQUFLLENBQUMsNEJBQTRCLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLElBQUksS0FBSyxFQUFFLENBQUM7UUFDVixNQUFNLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN0QixDQUFDO0FBQ0gsQ0FBQyJ9
@@ -0,0 +1,28 @@
1
+ import { Base } from 'sdk-base';
2
+ import type { Agent, Application } from 'egg';
3
+ import type { MockOptions, MockApplicationOptions } from './types.js';
4
+ declare const APP_INIT: unique symbol;
5
+ export declare class MockApplication extends Base {
6
+ #private;
7
+ _agent: Agent;
8
+ _app: Application;
9
+ options: MockApplicationOptions;
10
+ baseDir: string;
11
+ [APP_INIT]: boolean;
12
+ _initOnListeners: Set<any[]>;
13
+ _initOnceListeners: Set<any[]>;
14
+ constructor(options: MockApplicationOptions);
15
+ _init(): Promise<void>;
16
+ on(...args: any[]): this;
17
+ once(...args: any[]): this;
18
+ /**
19
+ * close app
20
+ */
21
+ _close(): Promise<void>;
22
+ /**
23
+ * @deprecated please use isClosed instead, keep compatible with old version
24
+ */
25
+ get closed(): boolean;
26
+ }
27
+ export declare function createApp(createOptions?: MockOptions): any;
28
+ export {};