@@ -74,6 +74,7 @@ const files = {
74
74
inSplittableMainChunk();
75
75
return (
76
76
<>
77
+ <h1>Splittable Route</h1>
77
78
<div
78
79
data-loader-data
79
80
className={loaderData.className}>
@@ -138,6 +139,7 @@ const files = {
138
139
inUnsplittableMainChunk();
139
140
return (
140
141
<>
142
+ <h1>Unsplittable Route</h1>
141
143
<div data-loader-data>loaderData = {JSON.stringify(loaderData)}</div>
142
144
{actionData ? (
143
145
<div data-action-data>actionData = {JSON.stringify(actionData)}</div>
@@ -184,6 +186,7 @@ const files = {
184
186
inMixedMainChunk();
185
187
return (
186
188
<>
189
+ <h1>Mixed Route</h1>
187
190
<div data-loader-data>loaderData = {JSON.stringify(loaderData)}</div>
188
191
{actionData ? (
189
192
<div data-action-data>actionData = {JSON.stringify(actionData)}</div>
@@ -246,6 +249,7 @@ test.describe("Split route modules", async () => {
246
249
247
250
// Ensure splittable exports are not in main chunk
248
251
await page . getByRole ( "link" , { name : "/splittable" } ) . click ( ) ;
252
+ await expect ( page . getByText ( "Splittable Route" ) ) . toBeVisible ( ) ;
249
253
expect ( await splittableHydrateFallbackDownloaded ( page ) ) . toBe ( false ) ;
250
254
await expect ( page . locator ( "[data-loader-data]" ) ) . toHaveText (
251
255
`loaderData = "clientLoader in main chunk: false"`
@@ -262,6 +266,7 @@ test.describe("Split route modules", async () => {
262
266
263
267
// Ensure unsplittable exports are in main chunk
264
268
await page . getByRole ( "link" , { name : "/unsplittable" } ) . click ( ) ;
269
+ await expect ( page . getByText ( "Unsplittable Route" ) ) . toBeVisible ( ) ;
265
270
expect ( await unsplittableHydrateFallbackDownloaded ( page ) ) . toBe ( true ) ;
266
271
await expect ( page . locator ( "[data-loader-data]" ) ) . toHaveText (
267
272
'loaderData = "clientLoader in main chunk: true"'
@@ -276,6 +281,7 @@ test.describe("Split route modules", async () => {
276
281
// Ensure mix of splittable and unsplittable exports are handled correctly.
277
282
// Note that only the client action is in its own chunk.
278
283
await page . getByRole ( "link" , { name : "/mixed" } ) . click ( ) ;
284
+ await expect ( page . getByText ( "Mixed Route" ) ) . toBeVisible ( ) ;
279
285
await expect ( page . locator ( "[data-loader-data]" ) ) . toHaveText (
280
286
'loaderData = "clientLoader in main chunk: true"'
281
287
) ;
@@ -287,20 +293,27 @@ test.describe("Split route modules", async () => {
287
293
288
294
// Ensure splittable HydrateFallback and client loader work during SSR
289
295
await page . goto ( `http://localhost:${ port } /splittable` ) ;
290
- expect ( page . locator ( "[data-hydrate-fallback]" ) ) . toHaveText ( "Loading..." ) ;
291
- expect ( page . locator ( "[data-hydrate-fallback]" ) ) . toHaveCSS (
296
+ await expect ( page . locator ( "[data-hydrate-fallback]" ) ) . toHaveText (
297
+ "Loading..."
298
+ ) ;
299
+ await expect ( page . locator ( "[data-hydrate-fallback]" ) ) . toHaveCSS (
292
300
"padding" ,
293
301
"20px"
294
302
) ;
295
303
expect ( await splittableHydrateFallbackDownloaded ( page ) ) . toBe ( true ) ;
296
304
await expect ( page . locator ( "[data-loader-data]" ) ) . toHaveText (
297
305
`loaderData = "clientLoader in main chunk: false"`
298
306
) ;
299
- expect ( page . locator ( "[data-loader-data]" ) ) . toHaveCSS ( "padding" , "20px" ) ;
307
+ await expect ( page . locator ( "[data-loader-data]" ) ) . toHaveCSS (
308
+ "padding" ,
309
+ "20px"
310
+ ) ;
300
311
301
312
// Ensure unsplittable HydrateFallback and client loader work during SSR
302
313
await page . goto ( `http://localhost:${ port } /unsplittable` ) ;
303
- expect ( page . locator ( "[data-hydrate-fallback]" ) ) . toHaveText ( "Loading..." ) ;
314
+ await expect ( page . locator ( "[data-hydrate-fallback]" ) ) . toHaveText (
315
+ "Loading..."
316
+ ) ;
304
317
expect ( await unsplittableHydrateFallbackDownloaded ( page ) ) . toBe ( true ) ;
305
318
await expect ( page . locator ( "[data-loader-data]" ) ) . toHaveText (
306
319
`loaderData = "clientLoader in main chunk: true"`
@@ -338,21 +351,29 @@ test.describe("Split route modules", async () => {
338
351
339
352
// Ensure splittable exports are kept in main chunk
340
353
await page . getByRole ( "link" , { name : "/splittable" } ) . click ( ) ;
354
+ await expect ( page . getByText ( "Splittable Route" ) ) . toBeVisible ( ) ;
341
355
expect ( await splittableHydrateFallbackDownloaded ( page ) ) . toBe ( true ) ;
342
356
await expect ( page . locator ( "[data-loader-data]" ) ) . toHaveText (
343
357
`loaderData = "clientLoader in main chunk: true"`
344
358
) ;
345
- expect ( page . locator ( "[data-loader-data]" ) ) . toHaveCSS ( "padding" , "20px" ) ;
359
+ await expect ( page . locator ( "[data-loader-data]" ) ) . toHaveCSS (
360
+ "padding" ,
361
+ "20px"
362
+ ) ;
346
363
await page . getByRole ( "button" ) . click ( ) ;
347
364
await expect ( page . locator ( "[data-action-data]" ) ) . toHaveText (
348
365
'actionData = "clientAction in main chunk: true"'
349
366
) ;
350
- expect ( page . locator ( "[data-action-data]" ) ) . toHaveCSS ( "padding" , "20px" ) ;
367
+ await expect ( page . locator ( "[data-action-data]" ) ) . toHaveCSS (
368
+ "padding" ,
369
+ "20px"
370
+ ) ;
351
371
352
372
await page . goBack ( ) ;
353
373
354
374
// Ensure unsplittable exports are kept in main chunk
355
375
await page . getByRole ( "link" , { name : "/unsplittable" } ) . click ( ) ;
376
+ await expect ( page . getByText ( "Unsplittable Route" ) ) . toBeVisible ( ) ;
356
377
expect ( await unsplittableHydrateFallbackDownloaded ( page ) ) . toBe ( true ) ;
357
378
await expect ( page . locator ( "[data-loader-data]" ) ) . toHaveText (
358
379
'loaderData = "clientLoader in main chunk: true"'
0 commit comments