@@ -18,75 +18,63 @@ const browser = await puppeteer.launch({
18
18
const pages = await browser . pages ( ) ;
19
19
const page = pages [ 0 ] ;
20
20
21
- const cases = [
22
- {
23
- framework : "simple-standalone" ,
24
- env : "development" ,
25
- file : "handler.ts" ,
26
- } ,
27
-
28
- { framework : "simple-standalone" , env : "production" , file : "handler.ts" } ,
29
-
30
- { framework : "express" , env : "development" , file : "routes/home.ts" } ,
31
- { framework : "express" , env : "production" , file : "routes/home.ts" } ,
32
-
33
- { framework : "fastify" , env : "development" , file : "routes/home.ts" } ,
34
- { framework : "fastify" , env : "production" , file : "routes/home.ts" } ,
35
-
36
- { framework : "koa" , env : "development" , file : "routes/home.ts" } ,
37
- { framework : "koa" , env : "production" , file : "routes/home.ts" } ,
38
-
39
- { framework : "hapi" , env : "development" , file : "routes/home.ts" } ,
40
- { framework : "hapi" , env : "production" , file : "routes/home.ts" } ,
41
-
42
- {
43
- framework : "ssr-react-express" ,
44
- env : "development" ,
45
- file : "pages/Home.tsx" ,
46
- } ,
47
- {
48
- framework : "ssr-react-express" ,
49
- env : "production" ,
50
- file : "pages/Home.tsx" ,
51
- } ,
52
- {
53
- framework : "ssr-vue-express" ,
54
- env : "development" ,
55
- file : "pages/Home.vue" ,
56
- } ,
57
- {
58
- framework : "ssr-vue-express" ,
59
- env : "production" ,
60
- file : "pages/Home.vue" ,
61
- } ,
62
- {
63
- framework : "vite-plugin-ssr" ,
64
- env : "development" ,
65
- file : "pages/index/index.page.tsx" ,
66
- } ,
67
- {
68
- framework : "vite-plugin-ssr" ,
69
- env : "production" ,
70
- file : "pages/index/index.page.tsx" ,
71
- } ,
72
- ] as const ;
73
-
74
- describe . each ( cases ) ( "$framework - $env" , ( { framework, env, file } ) => {
21
+ const baseCases : Array < {
22
+ framework : string ;
23
+ file : string ;
24
+ } > = [
25
+ { framework : "simple-standalone" , file : "handler.ts" } ,
26
+ { framework : "express" , file : "routes/home.ts" } ,
27
+ { framework : "fastify" , file : "routes/home.ts" } ,
28
+ { framework : "koa" , file : "routes/home.ts" } ,
29
+ { framework : "hapi" , file : "routes/home.ts" } ,
30
+ { framework : "ssr-react-express" , file : "pages/Home.tsx" } ,
31
+ { framework : "ssr-vue-express" , file : "pages/Home.vue" } ,
32
+ { framework : "vite-plugin-ssr" , file : "pages/index/index.page.tsx" } ,
33
+ ] ;
34
+
35
+ const [ major , minor ] = process . version
36
+ . slice ( 1 )
37
+ . split ( "." )
38
+ . map ( ( x ) => Number ( x ) ) ;
39
+
40
+ const cases : Array < {
41
+ framework : string ;
42
+ file : string ;
43
+ env : "production" | "development" | "with-loader" ;
44
+ } > = [
45
+ ...baseCases . map ( ( x ) => ( { ...x , env : "production" as const } ) ) ,
46
+ ...baseCases . map ( ( x ) => ( { ...x , env : "development" as const } ) ) ,
47
+ ] ;
48
+
49
+ const loaderAvailable = major > 16 || ( major === 16 && minor >= 12 ) ;
50
+ if ( loaderAvailable ) {
51
+ cases . push ( ...baseCases . map ( ( x ) => ( { ...x , env : "with-loader" as const } ) ) ) ;
52
+ }
53
+
54
+ describe . each ( cases ) ( "$framework - $env " , ( { framework, env, file } ) => {
75
55
const ssr = framework . includes ( "ssr" ) ;
76
56
const dir = path . resolve ( __dirname , ".." , "examples" , framework ) ;
77
57
78
58
let cp : ChildProcess | undefined ;
79
59
80
60
beforeAll ( async ( ) => {
81
61
const command =
82
- env === "development "
83
- ? "pnpm exec vite serve --strictPort --port 3000 --logLevel silent "
84
- : "pnpm run build && pnpm start " ;
62
+ env === "production "
63
+ ? "pnpm run build && pnpm start "
64
+ : "pnpm exec vite serve --strictPort --port 3000 --logLevel silent " ;
85
65
86
66
cp = spawn ( command , {
87
67
shell : true ,
88
68
stdio : "inherit" ,
89
69
cwd : dir ,
70
+ env : {
71
+ ...process . env ,
72
+ ...( env === "with-loader" && {
73
+ NODE_OPTIONS :
74
+ ( process . env . NODE_OPTIONS ?? "" ) +
75
+ " -r vavite/suppress-loader-warnings --loader vavite/node-loader" ,
76
+ } ) ,
77
+ } ,
90
78
} ) ;
91
79
92
80
// Wait until server is ready
@@ -155,7 +143,7 @@ describe.each(cases)("$framework - $env", ({ framework, env, file }) => {
155
143
} , 15_000 ) ;
156
144
}
157
145
158
- if ( env === "development ") {
146
+ if ( env !== "production ") {
159
147
test ( "hot reloads page" , async ( ) => {
160
148
await page . goto ( TEST_HOST ) ;
161
149
0 commit comments