@eggjs/mock 6.0.7 → 6.1.0-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/README.md +36 -57
  2. package/README.zh_CN.md +31 -51
  3. package/dist/_virtual/rolldown_runtime.js +7 -0
  4. package/dist/app/extend/agent.d.ts +39 -0
  5. package/dist/app/extend/agent.js +48 -0
  6. package/dist/app/extend/application.d.ts +175 -0
  7. package/dist/app/extend/application.js +385 -0
  8. package/dist/app/middleware/cluster_app_mock.d.ts +6 -0
  9. package/dist/app/middleware/cluster_app_mock.js +97 -0
  10. package/dist/app.d.ts +10 -0
  11. package/dist/app.js +17 -0
  12. package/dist/bootstrap.d.ts +9 -0
  13. package/dist/bootstrap.js +14 -0
  14. package/dist/index.d.ts +81 -0
  15. package/dist/index.js +47 -0
  16. package/dist/inject_mocha.d.ts +1 -0
  17. package/dist/inject_mocha.js +34 -0
  18. package/dist/lib/agent_handler.d.ts +7 -0
  19. package/dist/lib/agent_handler.js +26 -0
  20. package/dist/lib/app.d.ts +7 -0
  21. package/dist/lib/app.js +251 -0
  22. package/dist/lib/app_handler.d.ts +9 -0
  23. package/dist/lib/app_handler.js +56 -0
  24. package/dist/lib/cluster.d.ts +126 -0
  25. package/dist/lib/cluster.js +283 -0
  26. package/dist/lib/context.d.ts +4 -0
  27. package/dist/lib/context.js +10 -0
  28. package/dist/lib/format_options.d.ts +10 -0
  29. package/dist/lib/format_options.js +65 -0
  30. package/dist/lib/inject_context.d.ts +9 -0
  31. package/dist/lib/inject_context.js +106 -0
  32. package/dist/lib/mock_agent.d.ts +9 -0
  33. package/dist/lib/mock_agent.js +45 -0
  34. package/dist/lib/mock_custom_loader.d.ts +4 -0
  35. package/dist/lib/mock_custom_loader.js +35 -0
  36. package/dist/lib/mock_http_server.d.ts +6 -0
  37. package/dist/lib/mock_http_server.js +17 -0
  38. package/dist/lib/mock_httpclient.d.ts +40 -0
  39. package/dist/lib/mock_httpclient.js +110 -0
  40. package/dist/lib/parallel/agent.d.ts +24 -0
  41. package/dist/lib/parallel/agent.js +111 -0
  42. package/dist/lib/parallel/app.d.ts +24 -0
  43. package/dist/lib/parallel/app.js +99 -0
  44. package/dist/lib/parallel/util.d.ts +6 -0
  45. package/dist/lib/parallel/util.js +59 -0
  46. package/dist/lib/prerequire.d.ts +1 -0
  47. package/dist/lib/prerequire.js +1 -0
  48. package/dist/lib/request_call_function.d.ts +1 -0
  49. package/dist/lib/request_call_function.js +37 -0
  50. package/dist/lib/restore.d.ts +4 -0
  51. package/dist/lib/restore.js +16 -0
  52. package/dist/lib/start-cluster.d.ts +1 -0
  53. package/dist/lib/start-cluster.js +19 -0
  54. package/dist/lib/supertest.d.ts +16 -0
  55. package/dist/lib/supertest.js +39 -0
  56. package/dist/lib/tmp/empty.d.ts +1 -0
  57. package/dist/lib/tmp/empty.js +1 -0
  58. package/{src/lib/types.ts → dist/lib/types.d.ts} +12 -29
  59. package/dist/lib/types.js +1 -0
  60. package/dist/lib/utils.d.ts +12 -0
  61. package/dist/lib/utils.js +40 -0
  62. package/dist/register.d.ts +10 -0
  63. package/dist/register.js +40 -0
  64. package/dist/typings/index.d.ts +1 -0
  65. package/package.json +69 -98
  66. package/dist/commonjs/app/extend/agent.d.ts +0 -34
  67. package/dist/commonjs/app/extend/agent.js +0 -49
  68. package/dist/commonjs/app/extend/application.d.ts +0 -172
  69. package/dist/commonjs/app/extend/application.js +0 -450
  70. package/dist/commonjs/app/middleware/cluster_app_mock.d.ts +0 -3
  71. package/dist/commonjs/app/middleware/cluster_app_mock.js +0 -101
  72. package/dist/commonjs/app.d.ts +0 -6
  73. package/dist/commonjs/app.js +0 -20
  74. package/dist/commonjs/bootstrap.d.ts +0 -5
  75. package/dist/commonjs/bootstrap.js +0 -59
  76. package/dist/commonjs/index.d.ts +0 -77
  77. package/dist/commonjs/index.js +0 -114
  78. package/dist/commonjs/lib/agent_handler.d.ts +0 -3
  79. package/dist/commonjs/lib/agent_handler.js +0 -28
  80. package/dist/commonjs/lib/app.d.ts +0 -3
  81. package/dist/commonjs/lib/app.js +0 -301
  82. package/dist/commonjs/lib/app_handler.d.ts +0 -5
  83. package/dist/commonjs/lib/app_handler.js +0 -71
  84. package/dist/commonjs/lib/cluster.d.ts +0 -114
  85. package/dist/commonjs/lib/cluster.js +0 -337
  86. package/dist/commonjs/lib/context.d.ts +0 -1
  87. package/dist/commonjs/lib/context.js +0 -16
  88. package/dist/commonjs/lib/format_options.d.ts +0 -5
  89. package/dist/commonjs/lib/format_options.js +0 -100
  90. package/dist/commonjs/lib/inject_context.d.ts +0 -6
  91. package/dist/commonjs/lib/inject_context.js +0 -132
  92. package/dist/commonjs/lib/mock_agent.d.ts +0 -5
  93. package/dist/commonjs/lib/mock_agent.js +0 -49
  94. package/dist/commonjs/lib/mock_custom_loader.d.ts +0 -1
  95. package/dist/commonjs/lib/mock_custom_loader.js +0 -37
  96. package/dist/commonjs/lib/mock_http_server.d.ts +0 -2
  97. package/dist/commonjs/lib/mock_http_server.js +0 -24
  98. package/dist/commonjs/lib/mock_httpclient.d.ts +0 -36
  99. package/dist/commonjs/lib/mock_httpclient.js +0 -147
  100. package/dist/commonjs/lib/parallel/agent.d.ts +0 -20
  101. package/dist/commonjs/lib/parallel/agent.js +0 -125
  102. package/dist/commonjs/lib/parallel/app.d.ts +0 -20
  103. package/dist/commonjs/lib/parallel/app.js +0 -115
  104. package/dist/commonjs/lib/parallel/util.d.ts +0 -3
  105. package/dist/commonjs/lib/parallel/util.js +0 -77
  106. package/dist/commonjs/lib/prerequire.d.ts +0 -1
  107. package/dist/commonjs/lib/prerequire.js +0 -26
  108. package/dist/commonjs/lib/request_call_function.d.ts +0 -1
  109. package/dist/commonjs/lib/request_call_function.js +0 -52
  110. package/dist/commonjs/lib/restore.d.ts +0 -1
  111. package/dist/commonjs/lib/restore.js +0 -16
  112. package/dist/commonjs/lib/start-cluster.d.ts +0 -2
  113. package/dist/commonjs/lib/start-cluster.js +0 -23
  114. package/dist/commonjs/lib/supertest.d.ts +0 -11
  115. package/dist/commonjs/lib/supertest.js +0 -48
  116. package/dist/commonjs/lib/tmp/empty.d.ts +0 -1
  117. package/dist/commonjs/lib/tmp/empty.js +0 -3
  118. package/dist/commonjs/lib/types.d.ts +0 -68
  119. package/dist/commonjs/lib/types.js +0 -3
  120. package/dist/commonjs/lib/utils.d.ts +0 -9
  121. package/dist/commonjs/lib/utils.js +0 -80
  122. package/dist/commonjs/package.json +0 -3
  123. package/dist/commonjs/register.d.ts +0 -8
  124. package/dist/commonjs/register.js +0 -80
  125. package/dist/esm/app/extend/agent.d.ts +0 -34
  126. package/dist/esm/app/extend/agent.js +0 -46
  127. package/dist/esm/app/extend/application.d.ts +0 -172
  128. package/dist/esm/app/extend/application.js +0 -444
  129. package/dist/esm/app/middleware/cluster_app_mock.d.ts +0 -3
  130. package/dist/esm/app/middleware/cluster_app_mock.js +0 -99
  131. package/dist/esm/app.d.ts +0 -6
  132. package/dist/esm/app.js +0 -17
  133. package/dist/esm/bootstrap.d.ts +0 -5
  134. package/dist/esm/bootstrap.js +0 -15
  135. package/dist/esm/index.d.ts +0 -77
  136. package/dist/esm/index.js +0 -91
  137. package/dist/esm/lib/agent_handler.d.ts +0 -3
  138. package/dist/esm/lib/agent_handler.js +0 -24
  139. package/dist/esm/lib/app.d.ts +0 -3
  140. package/dist/esm/lib/app.js +0 -295
  141. package/dist/esm/lib/app_handler.d.ts +0 -5
  142. package/dist/esm/lib/app_handler.js +0 -65
  143. package/dist/esm/lib/cluster.d.ts +0 -114
  144. package/dist/esm/lib/cluster.js +0 -328
  145. package/dist/esm/lib/context.d.ts +0 -1
  146. package/dist/esm/lib/context.js +0 -13
  147. package/dist/esm/lib/format_options.d.ts +0 -5
  148. package/dist/esm/lib/format_options.js +0 -94
  149. package/dist/esm/lib/inject_context.d.ts +0 -6
  150. package/dist/esm/lib/inject_context.js +0 -126
  151. package/dist/esm/lib/mock_agent.d.ts +0 -5
  152. package/dist/esm/lib/mock_agent.js +0 -45
  153. package/dist/esm/lib/mock_custom_loader.d.ts +0 -1
  154. package/dist/esm/lib/mock_custom_loader.js +0 -34
  155. package/dist/esm/lib/mock_http_server.d.ts +0 -2
  156. package/dist/esm/lib/mock_http_server.js +0 -18
  157. package/dist/esm/lib/mock_httpclient.d.ts +0 -36
  158. package/dist/esm/lib/mock_httpclient.js +0 -144
  159. package/dist/esm/lib/parallel/agent.d.ts +0 -20
  160. package/dist/esm/lib/parallel/agent.js +0 -117
  161. package/dist/esm/lib/parallel/app.d.ts +0 -20
  162. package/dist/esm/lib/parallel/app.js +0 -110
  163. package/dist/esm/lib/parallel/util.d.ts +0 -3
  164. package/dist/esm/lib/parallel/util.js +0 -73
  165. package/dist/esm/lib/prerequire.d.ts +0 -1
  166. package/dist/esm/lib/prerequire.js +0 -25
  167. package/dist/esm/lib/request_call_function.d.ts +0 -1
  168. package/dist/esm/lib/request_call_function.js +0 -47
  169. package/dist/esm/lib/restore.d.ts +0 -1
  170. package/dist/esm/lib/restore.js +0 -13
  171. package/dist/esm/lib/start-cluster.d.ts +0 -2
  172. package/dist/esm/lib/start-cluster.js +0 -18
  173. package/dist/esm/lib/supertest.d.ts +0 -11
  174. package/dist/esm/lib/supertest.js +0 -40
  175. package/dist/esm/lib/tmp/empty.d.ts +0 -1
  176. package/dist/esm/lib/tmp/empty.js +0 -2
  177. package/dist/esm/lib/types.d.ts +0 -68
  178. package/dist/esm/lib/types.js +0 -2
  179. package/dist/esm/lib/utils.d.ts +0 -9
  180. package/dist/esm/lib/utils.js +0 -69
  181. package/dist/esm/package.json +0 -3
  182. package/dist/esm/register.d.ts +0 -8
  183. package/dist/esm/register.js +0 -75
  184. package/dist/package.json +0 -4
  185. package/src/app/extend/agent.ts +0 -57
  186. package/src/app/extend/application.ts +0 -512
  187. package/src/app/middleware/cluster_app_mock.ts +0 -102
  188. package/src/app.ts +0 -18
  189. package/src/bootstrap.ts +0 -25
  190. package/src/index.ts +0 -112
  191. package/src/lib/agent_handler.ts +0 -28
  192. package/src/lib/app.ts +0 -314
  193. package/src/lib/app_handler.ts +0 -77
  194. package/src/lib/cluster.ts +0 -363
  195. package/src/lib/context.ts +0 -14
  196. package/src/lib/format_options.ts +0 -103
  197. package/src/lib/inject_context.ts +0 -134
  198. package/src/lib/mock_agent.ts +0 -57
  199. package/src/lib/mock_custom_loader.ts +0 -36
  200. package/src/lib/mock_http_server.ts +0 -19
  201. package/src/lib/mock_httpclient.ts +0 -183
  202. package/src/lib/parallel/agent.ts +0 -128
  203. package/src/lib/parallel/app.ts +0 -123
  204. package/src/lib/parallel/util.ts +0 -66
  205. package/src/lib/prerequire.ts +0 -25
  206. package/src/lib/request_call_function.ts +0 -49
  207. package/src/lib/restore.ts +0 -14
  208. package/src/lib/start-cluster.ts +0 -23
  209. package/src/lib/supertest.ts +0 -45
  210. package/src/lib/tmp/.gitkeep +0 -0
  211. package/src/lib/tmp/empty.ts +0 -0
  212. package/src/lib/utils.ts +0 -82
  213. package/src/register.ts +0 -80
  214. package/src/typings/index.d.ts +0 -4
@@ -1,444 +0,0 @@
1
- import { debuglog } from 'node:util';
2
- import http from 'node:http';
3
- import fs from 'node:fs';
4
- import assert from 'node:assert';
5
- import mergeDescriptors from 'merge-descriptors';
6
- import { isAsyncFunction, isObject } from 'is-type-of';
7
- import { mock, restore } from 'mm';
8
- import { Transport } from 'egg-logger';
9
- import { EggCore } from '@eggjs/core';
10
- import { getMockAgent, restoreMockAgent } from '../../lib/mock_agent.js';
11
- import { createMockHttpClient, } from '../../lib/mock_httpclient.js';
12
- import { request as supertestRequest } from '../../lib/supertest.js';
13
- const debug = debuglog('@eggjs/mock/app/extend/application');
14
- const ORIGIN_TYPES = Symbol('@eggjs/mock originTypes');
15
- const BACKGROUND_TASKS = Symbol('Application#backgroundTasks');
16
- const REUSED_CTX = Symbol('Context#reusedInSuite');
17
- export default class ApplicationUnittest extends EggCore {
18
- _mockHttpClient;
19
- /**
20
- * mock Context
21
- * @function App#mockContext
22
- * @param {Object} data - ctx data
23
- * @param {Object} [options] - mock ctx options
24
- * @example
25
- * ```js
26
- * const ctx = app.mockContext({
27
- * user: {
28
- * name: 'Jason'
29
- * }
30
- * });
31
- * console.log(ctx.user.name); // Jason
32
- *
33
- * // controller
34
- * module.exports = function*() {
35
- * this.body = this.user.name;
36
- * };
37
- * ```
38
- */
39
- mockContext(data, options) {
40
- data = data ?? {};
41
- function mockRequest(req) {
42
- for (const key in data?.headers) {
43
- mock(req.headers, key, data.headers[key]);
44
- mock(req.headers, key.toLowerCase(), data.headers[key]);
45
- }
46
- }
47
- // try to use app.options.mockCtxStorage first
48
- const mockCtxStorage = this.options.mockCtxStorage ?? true;
49
- options = Object.assign({ mockCtxStorage }, options);
50
- if ('_customMockContext' in this && typeof this._customMockContext === 'function') {
51
- this._customMockContext(data);
52
- }
53
- // 使用者自定义mock,可以覆盖上面的 mock
54
- for (const key in data) {
55
- mock(this.context, key, data[key]);
56
- }
57
- const req = this.mockRequest(data);
58
- const res = new http.ServerResponse(req);
59
- if (options.reuseCtxStorage !== false) {
60
- if (this.currentContext && !this.currentContext[REUSED_CTX]) {
61
- mockRequest(this.currentContext.request.req);
62
- this.currentContext[REUSED_CTX] = true;
63
- return this.currentContext;
64
- }
65
- }
66
- const ctx = this.createContext(req, res);
67
- if (options.mockCtxStorage) {
68
- mock(this.ctxStorage, 'getStore', () => ctx);
69
- }
70
- return ctx;
71
- }
72
- async mockContextScope(fn, data) {
73
- const ctx = this.mockContext(data, {
74
- mockCtxStorage: false,
75
- reuseCtxStorage: false,
76
- });
77
- return await this.ctxStorage.run(ctx, async () => {
78
- return await fn(ctx);
79
- });
80
- }
81
- /**
82
- * mock cookie session
83
- * @function App#mockSession
84
- * @param {Object} data - session object
85
- */
86
- mockSession(data) {
87
- if (!data) {
88
- return this;
89
- }
90
- if (isObject(data) && !('save' in data)) {
91
- // keep session.save() work
92
- Object.defineProperty(data, 'save', {
93
- value: () => { },
94
- enumerable: false,
95
- });
96
- }
97
- mock(this.context, 'session', data);
98
- return this;
99
- }
100
- /**
101
- * Mock service
102
- * @function App#mockService
103
- * @param {String} service - name
104
- * @param {String} methodName - method
105
- * @param {Object|Function|Error} fn - mock you data
106
- */
107
- mockService(service, methodName, fn) {
108
- if (typeof service === 'string') {
109
- const splits = service.split('.');
110
- service = this.serviceClasses;
111
- for (const key of splits) {
112
- service = service[key];
113
- }
114
- service = service.prototype || service;
115
- }
116
- this._mockFn(service, methodName, fn);
117
- return this;
118
- }
119
- /**
120
- * mock service that return error
121
- * @function App#mockServiceError
122
- * @param {String} service - name
123
- * @param {String} methodName - method
124
- * @param {Error} [err] - error information
125
- */
126
- mockServiceError(service, methodName, err) {
127
- if (typeof err === 'string') {
128
- err = new Error(err);
129
- }
130
- if (!err) {
131
- // mockServiceError(service, methodName)
132
- err = new Error(`mock ${methodName} error`);
133
- }
134
- this.mockService(service, methodName, err);
135
- return this;
136
- }
137
- _mockFn(obj, name, data) {
138
- const origin = obj[name];
139
- assert(typeof origin === 'function', `property ${name} in original object must be function`);
140
- // keep origin properties' type to support mock multi times
141
- if (!obj[ORIGIN_TYPES])
142
- obj[ORIGIN_TYPES] = {};
143
- let type = obj[ORIGIN_TYPES][name];
144
- if (!type) {
145
- type = obj[ORIGIN_TYPES][name] = isAsyncFunction(origin) ? 'async' : 'sync';
146
- }
147
- if (typeof data === 'function') {
148
- const fn = data;
149
- // if original is async function
150
- // but the mock function is normal function, need to change it return a promise
151
- if (type === 'async' && !isAsyncFunction(fn)) {
152
- mock(obj, name, function (...args) {
153
- return new Promise(resolve => {
154
- resolve(fn.apply(this, args));
155
- });
156
- });
157
- return;
158
- }
159
- mock(obj, name, fn);
160
- return;
161
- }
162
- if (type === 'async') {
163
- mock(obj, name, () => {
164
- return new Promise((resolve, reject) => {
165
- if (data instanceof Error)
166
- return reject(data);
167
- resolve(data);
168
- });
169
- });
170
- return;
171
- }
172
- mock(obj, name, () => {
173
- if (data instanceof Error) {
174
- throw data;
175
- }
176
- return data;
177
- });
178
- }
179
- /**
180
- * mock request
181
- * @function App#mockRequest
182
- * @param {Request} req - mock request
183
- */
184
- mockRequest(req) {
185
- req = { ...req };
186
- const headers = req.headers ?? {};
187
- for (const key in req.headers) {
188
- headers[key.toLowerCase()] = req.headers[key];
189
- }
190
- if (!headers['x-forwarded-for']) {
191
- headers['x-forwarded-for'] = '127.0.0.1';
192
- }
193
- headers['x-mock-request-from'] = '@eggjs/mock';
194
- req.headers = headers;
195
- mergeDescriptors(req, {
196
- query: {},
197
- querystring: '',
198
- host: '127.0.0.1',
199
- hostname: '127.0.0.1',
200
- protocol: 'http',
201
- secure: 'false',
202
- method: 'GET',
203
- url: '/',
204
- path: '/',
205
- socket: {
206
- remoteAddress: '127.0.0.1',
207
- remotePort: 7001,
208
- },
209
- });
210
- return req;
211
- }
212
- /**
213
- * mock cookies
214
- * @function App#mockCookies
215
- */
216
- mockCookies(cookies) {
217
- if (!cookies) {
218
- return this;
219
- }
220
- const createContext = this.createContext;
221
- mock(this, 'createContext', function (req, res) {
222
- const ctx = createContext.call(this, req, res);
223
- const getCookie = ctx.cookies.get;
224
- mock(ctx.cookies, 'get', function (key, opts) {
225
- if (cookies[key]) {
226
- return cookies[key];
227
- }
228
- return getCookie.call(this, key, opts);
229
- });
230
- return ctx;
231
- });
232
- return this;
233
- }
234
- /**
235
- * mock header
236
- * @function App#mockHeaders
237
- */
238
- mockHeaders(headers) {
239
- if (!headers) {
240
- return this;
241
- }
242
- const getHeader = this.request.get;
243
- mock(this.request, 'get', function (field) {
244
- const value = findHeaders(headers, field);
245
- if (value)
246
- return value;
247
- return getHeader.call(this, field);
248
- });
249
- return this;
250
- }
251
- /**
252
- * mock csrf
253
- * @function App#mockCsrf
254
- * @since 1.11
255
- */
256
- mockCsrf() {
257
- mock(this.context, 'assertCSRF', () => { });
258
- mock(this.context, 'assertCsrf', () => { });
259
- return this;
260
- }
261
- /**
262
- * mock httpclient
263
- * @alias mockHttpClient
264
- * @function App#mockHttpclient
265
- */
266
- mockHttpclient(mockUrl, mockMethod, mockResult) {
267
- return this.mockHttpClient(mockUrl, mockMethod, mockResult);
268
- }
269
- /**
270
- * mock httpclient
271
- * @function App#mockHttpClient
272
- */
273
- mockHttpClient(mockUrl, mockMethod, mockResult) {
274
- if (!this._mockHttpClient) {
275
- this._mockHttpClient = createMockHttpClient(this);
276
- }
277
- this._mockHttpClient(mockUrl, mockMethod, mockResult);
278
- return this;
279
- }
280
- /**
281
- * @deprecated Please use app.mockHttpClient instead of app.mockUrllib
282
- */
283
- mockUrllib(mockUrl, mockMethod, mockResult) {
284
- this.deprecate('[@eggjs/mock] Please use app.mockHttpClient instead of app.mockUrllib');
285
- return this.mockHttpClient(mockUrl, mockMethod, mockResult);
286
- }
287
- /**
288
- * get mock httpclient agent
289
- * @function App#mockHttpclientAgent
290
- */
291
- mockAgent() {
292
- return getMockAgent(this);
293
- }
294
- async mockAgentRestore() {
295
- await restoreMockAgent();
296
- }
297
- /**
298
- * @see mm#restore
299
- * @function App#mockRestore
300
- */
301
- async mockRestore() {
302
- await this.mockAgentRestore();
303
- restore();
304
- }
305
- /**
306
- * @see mm
307
- * @function App#mm
308
- */
309
- get mm() {
310
- return mock;
311
- }
312
- /**
313
- * override loadAgent
314
- * @function App#loadAgent
315
- */
316
- loadAgent() { }
317
- /**
318
- * mock serverEnv
319
- * @function App#mockEnv
320
- * @param {String} env - serverEnv
321
- */
322
- mockEnv(env) {
323
- mock(this.config, 'env', env);
324
- mock(this.config, 'serverEnv', env);
325
- debug('mock env: %o', env);
326
- return this;
327
- }
328
- /**
329
- * http request helper
330
- * @function App#httpRequest
331
- * @return {SupertestRequest} req - supertest request
332
- * @see https://github.com/visionmedia/supertest
333
- */
334
- httpRequest() {
335
- return supertestRequest(this);
336
- }
337
- /**
338
- * collection logger message, then can be use on `expectLog()`
339
- * @param {String|Logger} [logger] - logger instance, default is `app.logger`
340
- * @function App#mockLog
341
- */
342
- mockLog(logger) {
343
- logger = logger ?? this.logger;
344
- if (typeof logger === 'string') {
345
- logger = this.getLogger(logger);
346
- }
347
- // make sure mock once
348
- if ('_mockLogs' in logger && logger._mockLogs)
349
- return;
350
- const transport = new Transport(logger.options);
351
- // https://github.com/eggjs/egg-logger/blob/master/lib/logger.js#L64
352
- const log = logger.log;
353
- const mockLogs = [];
354
- mock(logger, '_mockLogs', mockLogs);
355
- mock(logger, 'log', (level, args, meta) => {
356
- const message = transport.log(level, args, meta);
357
- mockLogs.push(message);
358
- log.apply(logger, [level, args, meta]);
359
- });
360
- }
361
- __checkExpectLog(expectOrNot, str, logger) {
362
- logger = logger || this.logger;
363
- if (typeof logger === 'string') {
364
- logger = this.getLogger(logger);
365
- }
366
- const filepath = logger.options.file;
367
- let content;
368
- if ('_mockLogs' in logger && logger._mockLogs) {
369
- content = logger._mockLogs.join('\n');
370
- }
371
- else {
372
- content = fs.readFileSync(filepath, 'utf8');
373
- }
374
- let match;
375
- let type;
376
- if (str instanceof RegExp) {
377
- match = str.test(content);
378
- type = 'RegExp';
379
- }
380
- else {
381
- match = content.includes(String(str));
382
- type = 'String';
383
- }
384
- if (expectOrNot) {
385
- assert(match, `Can't find ${type}:"${str}" in ${filepath}, log content: ...${content.substring(content.length - 500)}`);
386
- }
387
- else {
388
- assert(!match, `Find ${type}:"${str}" in ${filepath}, log content: ...${content.substring(content.length - 500)}`);
389
- }
390
- }
391
- /**
392
- * expect str/regexp in the logger, if your server disk is slow, please call `mockLog()` first.
393
- * @param {String|RegExp} str - test str or regexp
394
- * @param {String|Logger} [logger] - logger instance, default is `ctx.logger`
395
- * @function App#expectLog
396
- */
397
- expectLog(str, logger) {
398
- this.__checkExpectLog(true, str, logger);
399
- }
400
- /**
401
- * not expect str/regexp in the logger, if your server disk is slow, please call `mockLog()` first.
402
- * @param {String|RegExp} str - test str or regexp
403
- * @param {String|Logger} [logger] - logger instance, default is `ctx.logger`
404
- * @function App#notExpectLog
405
- */
406
- notExpectLog(str, logger) {
407
- this.__checkExpectLog(false, str, logger);
408
- }
409
- async backgroundTasksFinished() {
410
- const tasks = this._backgroundTasks;
411
- debug('waiting %d background tasks', tasks.length);
412
- if (tasks.length === 0)
413
- return;
414
- this._backgroundTasks = [];
415
- await Promise.all(tasks);
416
- debug('finished %d background tasks', tasks.length);
417
- if (this._backgroundTasks.length) {
418
- debug('new background tasks created: %s', this._backgroundTasks.length);
419
- await this.backgroundTasksFinished();
420
- }
421
- }
422
- get _backgroundTasks() {
423
- if (!this[BACKGROUND_TASKS]) {
424
- this[BACKGROUND_TASKS] = [];
425
- }
426
- return this[BACKGROUND_TASKS];
427
- }
428
- set _backgroundTasks(tasks) {
429
- this[BACKGROUND_TASKS] = tasks;
430
- }
431
- }
432
- function findHeaders(headers, key) {
433
- if (!headers || !key) {
434
- return null;
435
- }
436
- key = key.toLowerCase();
437
- for (const headerKey in headers) {
438
- if (key === headerKey.toLowerCase()) {
439
- return headers[headerKey];
440
- }
441
- }
442
- return null;
443
- }
444
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2V4dGVuZC9hcHBsaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sSUFBeUIsTUFBTSxXQUFXLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pCLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQztBQUNqQyxPQUFPLGdCQUFnQixNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBRW5DLE9BQU8sRUFBRSxTQUFTLEVBQW1DLE1BQU0sWUFBWSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxPQUFPLEVBQXVELE1BQU0sYUFBYSxDQUFDO0FBRTNGLE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RSxPQUFPLEVBQ0wsb0JBQW9CLEdBR3JCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLE9BQU8sSUFBSSxnQkFBZ0IsRUFBa0IsTUFBTSx3QkFBd0IsQ0FBQztBQUdyRixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsb0NBQW9DLENBQUMsQ0FBQztBQUU3RCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUN2RCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0FBQy9ELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBdUJuRCxNQUFNLENBQUMsT0FBTyxPQUFnQixtQkFBb0IsU0FBUSxPQUFPO0lBRy9ELGVBQWUsQ0FBd0I7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
@@ -1,3 +0,0 @@
1
- import { Context, Next } from '@eggjs/core';
2
- declare const _default: () => (ctx: Context, next: Next) => Promise<void>;
3
- export default _default;
@@ -1,99 +0,0 @@
1
- import { debuglog } from 'node:util';
2
- const debug = debuglog('@eggjs/mock/app/middleware/cluster_app_mock');
3
- export default () => {
4
- return async function clusterAppMock(ctx, next) {
5
- // use originalUrl to make sure other middlewares can't change request url
6
- if (ctx.originalUrl !== '/__egg_mock_call_function') {
7
- return next();
8
- }
9
- const body = ctx.request.body;
10
- debug('%s %s, body: %j', ctx.method, ctx.url, body);
11
- const { method, property, args, needResult } = body;
12
- if (!method) {
13
- ctx.status = 422;
14
- ctx.body = {
15
- success: false,
16
- error: 'Missing method',
17
- };
18
- return;
19
- }
20
- if (args && !Array.isArray(args)) {
21
- ctx.status = 422;
22
- ctx.body = {
23
- success: false,
24
- error: 'args should be an Array instance',
25
- };
26
- return;
27
- }
28
- if (property) {
29
- // method: '__getter__' and property: 'config'
30
- if (method === '__getter__') {
31
- if (!ctx.app[property]) {
32
- debug('property %s not exists on app', property);
33
- ctx.status = 422;
34
- ctx.body = {
35
- success: false,
36
- error: `property "${property}" not exists on app`,
37
- };
38
- return;
39
- }
40
- ctx.body = { success: true, result: ctx.app[property] };
41
- return;
42
- }
43
- if (!ctx.app[property] || typeof ctx.app[property][method] !== 'function') {
44
- debug('property %s.%s not exists on app', property, method);
45
- ctx.status = 422;
46
- ctx.body = {
47
- success: false,
48
- error: `method "${method}" not exists on app.${property}`,
49
- };
50
- return;
51
- }
52
- }
53
- else {
54
- if (typeof ctx.app[method] !== 'function') {
55
- debug('method %s not exists on app', method);
56
- ctx.status = 422;
57
- ctx.body = {
58
- success: false,
59
- error: `method "${method}" not exists on app`,
60
- };
61
- return;
62
- }
63
- }
64
- debug('call %s with %j', method, args);
65
- for (let i = 0; i < args.length; i++) {
66
- const arg = args[i];
67
- if (arg && typeof arg === 'object') {
68
- // convert __egg_mock_type back to function
69
- if (arg.__egg_mock_type === 'function') {
70
- // eslint-disable-next-line
71
- args[i] = eval(`(function() { return ${arg.value} })()`);
72
- }
73
- else if (arg.__egg_mock_type === 'error') {
74
- const err = new Error(arg.message);
75
- err.name = arg.name;
76
- err.stack = arg.stack;
77
- for (const key in arg) {
78
- if (key !== 'name' && key !== 'message' && key !== 'stack' && key !== '__egg_mock_type') {
79
- err[key] = arg[key];
80
- }
81
- }
82
- args[i] = err;
83
- }
84
- }
85
- }
86
- const target = property ? ctx.app[property] : ctx.app;
87
- const fn = target[method];
88
- try {
89
- Promise.resolve(fn.call(target, ...args)).then(result => {
90
- ctx.body = needResult ? { success: true, result } : { success: true };
91
- });
92
- }
93
- catch (err) {
94
- ctx.status = 500;
95
- ctx.body = { success: false, error: err.message };
96
- }
97
- };
98
- };
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3Rlcl9hcHBfbW9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvbWlkZGxld2FyZS9jbHVzdGVyX2FwcF9tb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHckMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLDZDQUE2QyxDQUFDLENBQUM7QUFFdEUsZUFBZSxHQUFHLEVBQUU7SUFDbEIsT0FBTyxLQUFLLFVBQVUsY0FBYyxDQUFDLEdBQVksRUFBRSxJQUFVO1FBQzNELDBFQUEwRTtRQUMxRSxJQUFJLEdBQUcsQ0FBQyxXQUFXLEtBQUssMkJBQTJCLEVBQUUsQ0FBQztZQUNwRCxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxNQUFNLElBQUksR0FBSSxHQUFHLENBQUMsT0FBZSxDQUFDLElBQUksQ0FBQztRQUN2QyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BELE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDcEQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7WUFDakIsR0FBRyxDQUFDLElBQUksR0FBRztnQkFDVCxPQUFPLEVBQUUsS0FBSztnQkFDZCxLQUFLLEVBQUUsZ0JBQWdCO2FBQ3hCLENBQUM7WUFDRixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2pDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO1lBQ2pCLEdBQUcsQ0FBQyxJQUFJLEdBQUc7Z0JB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
package/dist/esm/app.d.ts DELETED
@@ -1,6 +0,0 @@
1
- import { ILifecycleBoot, EggCore } from '@eggjs/core';
2
- export default class Boot implements ILifecycleBoot {
3
- #private;
4
- constructor(app: EggCore);
5
- configWillLoad(): void;
6
- }
package/dist/esm/app.js DELETED
@@ -1,17 +0,0 @@
1
- export default class Boot {
2
- #app;
3
- constructor(app) {
4
- this.#app = app;
5
- }
6
- configWillLoad() {
7
- // make sure clusterAppMock position before securities
8
- const index = this.#app.config.coreMiddleware.indexOf('securities');
9
- if (index >= 0) {
10
- this.#app.config.coreMiddleware.splice(index, 0, 'clusterAppMock');
11
- }
12
- else {
13
- this.#app.config.coreMiddleware.push('clusterAppMock');
14
- }
15
- }
16
- }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsT0FBTyxPQUFPLElBQUk7SUFDdkIsSUFBSSxDQUFVO0lBQ2QsWUFBWSxHQUFZO1FBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxjQUFjO1FBQ1osc0RBQXNEO1FBQ3RELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEUsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNyRSxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQztDQUNGIn0=
@@ -1,5 +0,0 @@
1
- import { strict as assert } from 'node:assert';
2
- import mm, { mock, MockApplication } from './index.js';
3
- import { getBootstrapApp } from './lib/app_handler.js';
4
- declare const app: MockApplication;
5
- export { assert, getBootstrapApp, app, mm, mock, MockApplication, };
@@ -1,15 +0,0 @@
1
- import { strict as assert } from 'node:assert';
2
- import path from 'node:path';
3
- import { readJSONSync } from 'utility';
4
- import mm, { mock, MockApplication } from './index.js';
5
- import { getBootstrapApp, setupApp } from './lib/app_handler.js';
6
- import { getEggOptions } from './lib/utils.js';
7
- const options = getEggOptions();
8
- // throw error when an egg plugin test is using bootstrap
9
- const pkgInfo = readJSONSync(path.join(options.baseDir || process.cwd(), 'package.json'));
10
- if (pkgInfo.eggPlugin) {
11
- throw new Error('DO NOT USE bootstrap to test plugin');
12
- }
13
- const app = setupApp();
14
- export { assert, getBootstrapApp, app, mm, mock, MockApplication, };
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jvb3RzdHJhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFDN0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN2QyxPQUFPLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0MsTUFBTSxPQUFPLEdBQUcsYUFBYSxFQUFFLENBQUM7QUFFaEMseURBQXlEO0FBQ3pELE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUM7QUFDMUYsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFFRCxNQUFNLEdBQUcsR0FBRyxRQUFRLEVBQUUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsTUFBTSxFQUNOLGVBQWUsRUFDZixHQUFHLEVBQ0gsRUFBRSxFQUNGLElBQUksRUFDSixlQUFlLEdBQ2hCLENBQUMifQ==