@@ -17,6 +17,7 @@ const previewModeCookies = {
17
17
describe ( "Default handler" , ( ) => {
18
18
let pagesManifest : { [ key : string ] : string } ;
19
19
let manifest : PageManifest ;
20
+ let v2HandlerManifest : PageManifest ;
20
21
let prerenderManifest : PrerenderManifest ;
21
22
let routesManifest : RoutesManifest ;
22
23
let getPage : any ;
@@ -131,11 +132,25 @@ describe("Default handler", () => {
131
132
publicFiles
132
133
) ;
133
134
manifest = manifests . pageManifest ;
135
+ const v2HandlerManifests = await prepareBuildManifests (
136
+ {
137
+ buildId,
138
+ domainRedirects : { "www.example.com" : "https://example.com" } ,
139
+ useV2Handler : true
140
+ } ,
141
+ { } ,
142
+ routesManifest ,
143
+ pagesManifest ,
144
+ prerenderManifest ,
145
+ publicFiles
146
+ ) ;
147
+ v2HandlerManifest = v2HandlerManifests . pageManifest ;
134
148
} ) ;
135
149
136
150
beforeEach ( ( ) => {
137
151
consoleError = jest . spyOn ( console , "error" ) . mockReturnValueOnce ( ) ;
138
152
getPage = jest . fn ( ) ;
153
+ getPage . mockReturnValueOnce ( { default : jest . fn ( ) } ) ;
139
154
} ) ;
140
155
141
156
describe ( "Public file" , ( ) => {
@@ -427,4 +442,51 @@ describe("Default handler", () => {
427
442
}
428
443
} ) ;
429
444
} ) ;
445
+
446
+ describe ( "API" , ( ) => {
447
+ it . each `
448
+ uri | path
449
+ ${ "/api/preview" } | ${ "pages/api/preview.js" }
450
+ ` (
451
+ "Routes api request $uri to page $page with NodeNextRequest & NodeNextResponse" ,
452
+ async ( { path, uri } ) => {
453
+ const event = mockEvent ( uri ) ;
454
+ const route = await handleDefault (
455
+ event ,
456
+ v2HandlerManifest ,
457
+ prerenderManifest ,
458
+ routesManifest ,
459
+ getPage
460
+ ) ;
461
+ expect ( route ) . toBeFalsy ( ) ;
462
+ expect ( getPage ) . toHaveBeenCalledWith ( path ) ;
463
+ expect ( ( event . req as any ) . originalRequest ) . toBe ( event . req ) ;
464
+ expect ( ( event . res as any ) . originalResponse ) . toBe ( event . res ) ;
465
+ }
466
+ ) ;
467
+
468
+ it . each `
469
+ uri | path
470
+ ${ "/api/preview" } | ${ "pages/api/preview.js" }
471
+ ` ( "Routes api request $uri to page $page" , async ( { path, uri } ) => {
472
+ const event : any = mockEvent ( uri ) ;
473
+ event . req . originalRequest = { } ;
474
+ event . res . originalResponse = { } ;
475
+ const route = await handleDefault (
476
+ event ,
477
+ v2HandlerManifest ,
478
+ prerenderManifest ,
479
+ routesManifest ,
480
+ getPage
481
+ ) ;
482
+ expect ( route ) . toBeFalsy ( ) ;
483
+ expect ( getPage ) . toHaveBeenCalledWith ( path ) ;
484
+ expect ( ( event . req as any ) . originalRequest ) . toBe (
485
+ event . req . originalRequest
486
+ ) ;
487
+ expect ( ( event . res as any ) . originalResponse ) . toBe (
488
+ event . res . originalResponse
489
+ ) ;
490
+ } ) ;
491
+ } ) ;
430
492
} ) ;
0 commit comments