@@ -15,24 +15,30 @@ interface MockUndiciModule {
1515}
1616
1717// 使用 vi.hoisted 确保变量在 mock 提升时可用
18- const { mockFetchProxyFactory, mockUndiciModule, mockMainProcessInstance } = vi . hoisted ( ( ) => {
19- const mockProxyFn = vi . fn ( )
20- const undiciModule : MockUndiciModule = {
21- fetch : undefined
22- }
23- // 创建一个 mock MainProcess 实例
24- const mainProcessInstance = {
25- send : vi . fn ( ) ,
26- sendRequest : vi . fn ( ) . mockReturnThis ( ) ,
27- responseRequest : vi . fn ( ) ,
28- dispose : vi . fn ( )
29- }
30- return {
31- mockFetchProxyFactory : vi . fn ( ) . mockReturnValue ( mockProxyFn ) ,
32- mockUndiciModule : undiciModule ,
33- mockMainProcessInstance : mainProcessInstance
34- }
35- } )
18+ const { mockFetchProxyFactory, mockUndiciModule, mockMainProcessInstance, MockMainProcessClass } =
19+ vi . hoisted ( ( ) => {
20+ const mockProxyFn = vi . fn ( )
21+ const undiciModule : MockUndiciModule = {
22+ fetch : undefined
23+ }
24+ // 创建一个 mock MainProcess 实例
25+ const mainProcessInstance = {
26+ send : vi . fn ( ) ,
27+ sendRequest : vi . fn ( ) . mockReturnThis ( ) ,
28+ responseRequest : vi . fn ( ) ,
29+ dispose : vi . fn ( )
30+ }
31+ // 使用 function 关键字创建构造函数,避免 vitest 警告
32+ function MainProcessConstructor ( ) {
33+ return mainProcessInstance
34+ }
35+ return {
36+ mockFetchProxyFactory : vi . fn ( ) . mockReturnValue ( mockProxyFn ) ,
37+ mockUndiciModule : undiciModule ,
38+ mockMainProcessInstance : mainProcessInstance ,
39+ MockMainProcessClass : MainProcessConstructor
40+ }
41+ } )
3642
3743// Mock fetch.ts 模块
3844vi . mock ( './fetch' , ( ) => ( {
@@ -44,10 +50,10 @@ vi.mock('undici', () => ({
4450 default : mockUndiciModule
4551} ) )
4652
47- // Mock fork.ts 模块,导出一个可以返回我们 mock 实例的 MainProcess
53+ // Mock fork.ts 模块,使用 function 构造函数
4854vi . mock ( './fork' , ( ) => {
4955 return {
50- MainProcess : vi . fn ( ) . mockImplementation ( ( ) => mockMainProcessInstance ) ,
56+ MainProcess : MockMainProcessClass ,
5157 __dirname : '/mock/path'
5258 }
5359} )
@@ -80,7 +86,7 @@ describe('core/undici.ts', () => {
8086 default : mockUndiciModule
8187 } ) )
8288 vi . doMock ( './fork' , ( ) => ( {
83- MainProcess : vi . fn ( ) . mockImplementation ( ( ) => mockMainProcessInstance ) ,
89+ MainProcess : MockMainProcessClass ,
8490 __dirname : '/mock/path'
8591 } ) )
8692
@@ -109,7 +115,7 @@ describe('core/undici.ts', () => {
109115 default : mockUndiciModule
110116 } ) )
111117 vi . doMock ( './fork' , ( ) => ( {
112- MainProcess : vi . fn ( ) . mockImplementation ( ( ) => mockMainProcessInstance ) ,
118+ MainProcess : MockMainProcessClass ,
113119 __dirname : '/mock/path'
114120 } ) )
115121
@@ -139,7 +145,7 @@ describe('core/undici.ts', () => {
139145 default : mockUndiciModule
140146 } ) )
141147 vi . doMock ( './fork' , ( ) => ( {
142- MainProcess : vi . fn ( ) . mockImplementation ( ( ) => mockMainProcessInstance ) ,
148+ MainProcess : MockMainProcessClass ,
143149 __dirname : '/mock/path'
144150 } ) )
145151
@@ -174,7 +180,7 @@ describe('core/undici.ts', () => {
174180 default : mockUndiciModule
175181 } ) )
176182 vi . doMock ( './fork' , ( ) => ( {
177- MainProcess : vi . fn ( ) . mockImplementation ( ( ) => mockMainProcessInstance ) ,
183+ MainProcess : MockMainProcessClass ,
178184 __dirname : '/mock/path'
179185 } ) )
180186
@@ -206,7 +212,7 @@ describe('core/undici.ts', () => {
206212 default : mockUndiciModule
207213 } ) )
208214 vi . doMock ( './fork' , ( ) => ( {
209- MainProcess : vi . fn ( ) . mockImplementation ( ( ) => mockMainProcessInstance ) ,
215+ MainProcess : MockMainProcessClass ,
210216 __dirname : '/mock/path'
211217 } ) )
212218
@@ -238,7 +244,7 @@ describe('core/undici.ts', () => {
238244 default : mockUndiciModule
239245 } ) )
240246 vi . doMock ( './fork' , ( ) => ( {
241- MainProcess : vi . fn ( ) . mockImplementation ( ( ) => mockMainProcessInstance ) ,
247+ MainProcess : MockMainProcessClass ,
242248 __dirname : '/mock/path'
243249 } ) )
244250
@@ -273,7 +279,7 @@ describe('core/undici.ts', () => {
273279 default : mockUndiciModule
274280 } ) )
275281 vi . doMock ( './fork' , ( ) => ( {
276- MainProcess : vi . fn ( ) . mockImplementation ( ( ) => mockMainProcessInstance ) ,
282+ MainProcess : MockMainProcessClass ,
277283 __dirname : '/mock/path'
278284 } ) )
279285
@@ -316,7 +322,7 @@ describe('core/undici.ts', () => {
316322 default : mockUndiciModule
317323 } ) )
318324 vi . doMock ( './fork' , ( ) => ( {
319- MainProcess : vi . fn ( ) . mockImplementation ( ( ) => mockMainProcessInstance ) ,
325+ MainProcess : MockMainProcessClass ,
320326 __dirname : '/mock/path'
321327 } ) )
322328
0 commit comments