@@ -444,4 +444,47 @@ test.describe("typegen", () => {
444
444
expect ( proc . stderr . toString ( ) ) . toBe ( "" ) ;
445
445
expect ( proc . status ) . toBe ( 0 ) ;
446
446
} ) ;
447
+
448
+ test . describe ( "virtual:react-router/server-build" , async ( ) => {
449
+ test ( "static import matches 'createRequestHandler' argument type" , async ( ) => {
450
+ const cwd = await createProject ( {
451
+ "vite.config.ts" : viteConfig ,
452
+ "app/routes.ts" : tsx `
453
+ import { type RouteConfig } from "@react-router/dev/routes";
454
+ export default [] satisfies RouteConfig;
455
+ ` ,
456
+ "app/handler.ts" : tsx `
457
+ import { createRequestHandler } from "react-router";
458
+ import * as serverBuild from "virtual:react-router/server-build";
459
+ export default createRequestHandler(serverBuild);
460
+ ` ,
461
+ } ) ;
462
+
463
+ const proc = typecheck ( cwd ) ;
464
+ expect ( proc . stdout . toString ( ) ) . toBe ( "" ) ;
465
+ expect ( proc . stderr . toString ( ) ) . toBe ( "" ) ;
466
+ expect ( proc . status ) . toBe ( 0 ) ;
467
+ } ) ;
468
+
469
+ test ( "dynamic import matches 'createRequestHandler' function argument type" , async ( ) => {
470
+ const cwd = await createProject ( {
471
+ "vite.config.ts" : viteConfig ,
472
+ "app/routes.ts" : tsx `
473
+ import { type RouteConfig } from "@react-router/dev/routes";
474
+ export default [] satisfies RouteConfig;
475
+ ` ,
476
+ "app/handler.ts" : tsx `
477
+ import { createRequestHandler } from "react-router";
478
+ export default createRequestHandler(
479
+ () => import("virtual:react-router/server-build")
480
+ );
481
+ ` ,
482
+ } ) ;
483
+
484
+ const proc = typecheck ( cwd ) ;
485
+ expect ( proc . stdout . toString ( ) ) . toBe ( "" ) ;
486
+ expect ( proc . stderr . toString ( ) ) . toBe ( "" ) ;
487
+ expect ( proc . status ) . toBe ( 0 ) ;
488
+ } ) ;
489
+ } ) ;
447
490
} ) ;
0 commit comments