11import * as SentryCore from '@sentry/core' ;
22import type { EventHandler , EventHandlerRequest , H3Event } from 'h3' ;
33import { beforeEach , describe , expect , it , vi } from 'vitest' ;
4- import { wrapMiddlewareHandler } from '../../../src/runtime/hooks/wrapMiddlewareHandler' ;
4+ import { wrapMiddlewareHandlerWithSentry } from '../../../src/runtime/hooks/wrapMiddlewareHandler' ;
55
66// Only mock the Sentry APIs we need to verify
77vi . mock ( '@sentry/core' , async importOriginal => {
@@ -17,7 +17,7 @@ vi.mock('@sentry/core', async importOriginal => {
1717 } ;
1818} ) ;
1919
20- describe ( 'wrapMiddlewareHandler ' , ( ) => {
20+ describe ( 'wrapMiddlewareHandlerWithSentry ' , ( ) => {
2121 const mockEvent : H3Event < EventHandlerRequest > = {
2222 path : '/test-path' ,
2323 method : 'GET' ,
@@ -49,7 +49,7 @@ describe('wrapMiddlewareHandler', () => {
4949 it ( 'should wrap function handlers correctly and preserve return values' , async ( ) => {
5050 const functionHandler : EventHandler = vi . fn ( ) . mockResolvedValue ( 'success' ) ;
5151
52- const wrapped = wrapMiddlewareHandler ( functionHandler , 'test-middleware' ) ;
52+ const wrapped = wrapMiddlewareHandlerWithSentry ( functionHandler , 'test-middleware' ) ;
5353 const result = await wrapped ( mockEvent ) ;
5454
5555 expect ( functionHandler ) . toHaveBeenCalledWith ( mockEvent ) ;
@@ -60,7 +60,7 @@ describe('wrapMiddlewareHandler', () => {
6060 it ( 'should preserve sync return values from function handlers' , async ( ) => {
6161 const syncHandler : EventHandler = vi . fn ( ) . mockReturnValue ( 'sync-result' ) ;
6262
63- const wrapped = wrapMiddlewareHandler ( syncHandler , 'sync-middleware' ) ;
63+ const wrapped = wrapMiddlewareHandlerWithSentry ( syncHandler , 'sync-middleware' ) ;
6464 const result = await wrapped ( mockEvent ) ;
6565
6666 expect ( syncHandler ) . toHaveBeenCalledWith ( mockEvent ) ;
@@ -72,7 +72,7 @@ describe('wrapMiddlewareHandler', () => {
7272 it ( 'should handle async function handlers' , async ( ) => {
7373 const asyncHandler : EventHandler = vi . fn ( ) . mockResolvedValue ( 'async-success' ) ;
7474
75- const wrapped = wrapMiddlewareHandler ( asyncHandler , 'async-middleware' ) ;
75+ const wrapped = wrapMiddlewareHandlerWithSentry ( asyncHandler , 'async-middleware' ) ;
7676 const result = await wrapped ( mockEvent ) ;
7777
7878 expect ( asyncHandler ) . toHaveBeenCalledWith ( mockEvent ) ;
@@ -86,7 +86,7 @@ describe('wrapMiddlewareHandler', () => {
8686 originalError . stack = 'original-stack-trace' ;
8787 const failingHandler : EventHandler = vi . fn ( ) . mockRejectedValue ( originalError ) ;
8888
89- const wrapped = wrapMiddlewareHandler ( failingHandler , 'failing-middleware' ) ;
89+ const wrapped = wrapMiddlewareHandlerWithSentry ( failingHandler , 'failing-middleware' ) ;
9090
9191 await expect ( wrapped ( mockEvent ) ) . rejects . toThrow ( 'Original async error' ) ;
9292 await expect ( wrapped ( mockEvent ) ) . rejects . toMatchObject ( {
@@ -104,7 +104,7 @@ describe('wrapMiddlewareHandler', () => {
104104 throw originalError ;
105105 } ) ;
106106
107- const wrapped = wrapMiddlewareHandler ( failingHandler , 'sync-failing-middleware' ) ;
107+ const wrapped = wrapMiddlewareHandlerWithSentry ( failingHandler , 'sync-failing-middleware' ) ;
108108
109109 await expect ( wrapped ( mockEvent ) ) . rejects . toThrow ( 'Original sync error' ) ;
110110 await expect ( wrapped ( mockEvent ) ) . rejects . toBe ( originalError ) ;
@@ -116,7 +116,7 @@ describe('wrapMiddlewareHandler', () => {
116116 const stringError = 'String error' ;
117117 const failingHandler : EventHandler = vi . fn ( ) . mockRejectedValue ( stringError ) ;
118118
119- const wrapped = wrapMiddlewareHandler ( failingHandler , 'string-error-middleware' ) ;
119+ const wrapped = wrapMiddlewareHandlerWithSentry ( failingHandler , 'string-error-middleware' ) ;
120120
121121 await expect ( wrapped ( mockEvent ) ) . rejects . toBe ( stringError ) ;
122122 expect ( SentryCore . captureException ) . toHaveBeenCalledWith ( stringError , expect . any ( Object ) ) ;
@@ -133,7 +133,7 @@ describe('wrapMiddlewareHandler', () => {
133133 const userHandler : EventHandler = vi . fn ( ) . mockResolvedValue ( 'user-result' ) ;
134134
135135 // Should not throw despite Sentry failure
136- const wrapped = wrapMiddlewareHandler ( userHandler , 'isolated-middleware' ) ;
136+ const wrapped = wrapMiddlewareHandlerWithSentry ( userHandler , 'isolated-middleware' ) ;
137137
138138 // This should handle the Sentry error gracefully and still call user code
139139 await expect ( wrapped ( mockEvent ) ) . rejects . toThrow ( 'Sentry API failure' ) ;
@@ -147,7 +147,7 @@ describe('wrapMiddlewareHandler', () => {
147147 handler : baseHandler ,
148148 } ;
149149
150- const wrapped = wrapMiddlewareHandler ( handlerObject , 'object-middleware' ) ;
150+ const wrapped = wrapMiddlewareHandlerWithSentry ( handlerObject , 'object-middleware' ) ;
151151
152152 // Should return an object with wrapped handler
153153 expect ( typeof wrapped ) . toBe ( 'object' ) ;
@@ -180,7 +180,7 @@ describe('wrapMiddlewareHandler', () => {
180180 onRequest : onRequestHandler ,
181181 } ;
182182
183- const wrapped = wrapMiddlewareHandler ( handlerObject , 'request-middleware' ) ;
183+ const wrapped = wrapMiddlewareHandlerWithSentry ( handlerObject , 'request-middleware' ) ;
184184
185185 // Should preserve onRequest handler
186186 expect ( wrapped ) . toHaveProperty ( 'onRequest' ) ;
@@ -219,7 +219,7 @@ describe('wrapMiddlewareHandler', () => {
219219 onRequest : [ onRequestHandler1 , onRequestHandler2 ] ,
220220 } ;
221221
222- const wrapped = wrapMiddlewareHandler ( handlerObject , 'multi-request-middleware' ) ;
222+ const wrapped = wrapMiddlewareHandlerWithSentry ( handlerObject , 'multi-request-middleware' ) ;
223223
224224 // Should preserve onRequest as array
225225 expect ( wrapped ) . toHaveProperty ( 'onRequest' ) ;
@@ -266,7 +266,7 @@ describe('wrapMiddlewareHandler', () => {
266266 onBeforeResponse : onBeforeResponseHandler ,
267267 } ;
268268
269- const wrapped = wrapMiddlewareHandler ( handlerObject , 'response-middleware' ) ;
269+ const wrapped = wrapMiddlewareHandlerWithSentry ( handlerObject , 'response-middleware' ) ;
270270
271271 // Should preserve onBeforeResponse handler
272272 expect ( wrapped ) . toHaveProperty ( 'onBeforeResponse' ) ;
@@ -300,7 +300,7 @@ describe('wrapMiddlewareHandler', () => {
300300 onBeforeResponse : [ onBeforeResponseHandler1 , onBeforeResponseHandler2 ] ,
301301 } ;
302302
303- const wrapped = wrapMiddlewareHandler ( handlerObject , 'multi-response-middleware' ) ;
303+ const wrapped = wrapMiddlewareHandlerWithSentry ( handlerObject , 'multi-response-middleware' ) ;
304304
305305 // Should preserve onBeforeResponse as array
306306 expect ( wrapped ) . toHaveProperty ( 'onBeforeResponse' ) ;
@@ -350,7 +350,7 @@ describe('wrapMiddlewareHandler', () => {
350350 onBeforeResponse : onBeforeResponseHandler ,
351351 } ;
352352
353- const wrapped = wrapMiddlewareHandler ( handlerObject , 'complex-middleware' ) ;
353+ const wrapped = wrapMiddlewareHandlerWithSentry ( handlerObject , 'complex-middleware' ) ;
354354
355355 // Should preserve all properties
356356 expect ( wrapped ) . toHaveProperty ( 'handler' ) ;
@@ -402,7 +402,7 @@ describe('wrapMiddlewareHandler', () => {
402402 // No onRequest or onBeforeResponse
403403 } ;
404404
405- const wrapped = wrapMiddlewareHandler ( handlerObject , 'minimal-object-middleware' ) ;
405+ const wrapped = wrapMiddlewareHandlerWithSentry ( handlerObject , 'minimal-object-middleware' ) ;
406406
407407 // Should only have handler property
408408 expect ( wrapped ) . toHaveProperty ( 'handler' ) ;
@@ -430,7 +430,7 @@ describe('wrapMiddlewareHandler', () => {
430430 handler : failingHandler ,
431431 } ;
432432
433- const wrapped = wrapMiddlewareHandler ( handlerObject , 'failing-object-middleware' ) ;
433+ const wrapped = wrapMiddlewareHandlerWithSentry ( handlerObject , 'failing-object-middleware' ) ;
434434
435435 await expect ( wrapped . handler ( mockEvent ) ) . rejects . toThrow ( 'Handler error' ) ;
436436 expect ( SentryCore . captureException ) . toHaveBeenCalledWith ( error , expect . any ( Object ) ) ;
@@ -445,7 +445,7 @@ describe('wrapMiddlewareHandler', () => {
445445 onRequest : failingOnRequestHandler ,
446446 } ;
447447
448- const wrapped = wrapMiddlewareHandler ( handlerObject , 'failing-request-middleware' ) ;
448+ const wrapped = wrapMiddlewareHandlerWithSentry ( handlerObject , 'failing-request-middleware' ) ;
449449
450450 await expect ( wrapped . onRequest ( mockEvent ) ) . rejects . toThrow ( 'OnRequest error' ) ;
451451 expect ( SentryCore . captureException ) . toHaveBeenCalledWith ( error , expect . any ( Object ) ) ;
@@ -460,7 +460,7 @@ describe('wrapMiddlewareHandler', () => {
460460 onBeforeResponse : failingOnBeforeResponseHandler ,
461461 } ;
462462
463- const wrapped = wrapMiddlewareHandler ( handlerObject , 'failing-response-middleware' ) ;
463+ const wrapped = wrapMiddlewareHandlerWithSentry ( handlerObject , 'failing-response-middleware' ) ;
464464
465465 const mockResponse = { body : 'test-response' } ;
466466 await expect ( wrapped . onBeforeResponse ( mockEvent , mockResponse ) ) . rejects . toThrow ( 'OnBeforeResponse error' ) ;
@@ -472,7 +472,7 @@ describe('wrapMiddlewareHandler', () => {
472472 it ( 'should call Sentry APIs with correct parameters' , async ( ) => {
473473 const userHandler : EventHandler = vi . fn ( ) . mockResolvedValue ( 'api-test-result' ) ;
474474
475- const wrapped = wrapMiddlewareHandler ( userHandler , 'api-middleware' ) ;
475+ const wrapped = wrapMiddlewareHandlerWithSentry ( userHandler , 'api-middleware' ) ;
476476 await wrapped ( mockEvent ) ;
477477
478478 // Verify key Sentry APIs are called correctly
@@ -494,7 +494,7 @@ describe('wrapMiddlewareHandler', () => {
494494 const minimalEvent = { path : '/minimal' } as H3Event < EventHandlerRequest > ;
495495 const userHandler : EventHandler = vi . fn ( ) . mockResolvedValue ( 'minimal-result' ) ;
496496
497- const wrapped = wrapMiddlewareHandler ( userHandler , 'minimal-middleware' ) ;
497+ const wrapped = wrapMiddlewareHandlerWithSentry ( userHandler , 'minimal-middleware' ) ;
498498 const result = await wrapped ( minimalEvent ) ;
499499
500500 expect ( result ) . toBe ( 'minimal-result' ) ;
0 commit comments