Skip to content

Commit d055f17

Browse files
committed
split-route-modules awaits for h1 after nav
1 parent ca34cb1 commit d055f17

File tree

1 file changed

+27
-6
lines changed

1 file changed

+27
-6
lines changed

integration/split-route-modules-test.ts

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ const files = {
7474
inSplittableMainChunk();
7575
return (
7676
<>
77+
<h1>Splittable Route</h1>
7778
<div
7879
data-loader-data
7980
className={loaderData.className}>
@@ -138,6 +139,7 @@ const files = {
138139
inUnsplittableMainChunk();
139140
return (
140141
<>
142+
<h1>Unsplittable Route</h1>
141143
<div data-loader-data>loaderData = {JSON.stringify(loaderData)}</div>
142144
{actionData ? (
143145
<div data-action-data>actionData = {JSON.stringify(actionData)}</div>
@@ -184,6 +186,7 @@ const files = {
184186
inMixedMainChunk();
185187
return (
186188
<>
189+
<h1>Mixed Route</h1>
187190
<div data-loader-data>loaderData = {JSON.stringify(loaderData)}</div>
188191
{actionData ? (
189192
<div data-action-data>actionData = {JSON.stringify(actionData)}</div>
@@ -246,6 +249,7 @@ test.describe("Split route modules", async () => {
246249

247250
// Ensure splittable exports are not in main chunk
248251
await page.getByRole("link", { name: "/splittable" }).click();
252+
await expect(page.getByText("Splittable Route")).toBeVisible();
249253
expect(await splittableHydrateFallbackDownloaded(page)).toBe(false);
250254
await expect(page.locator("[data-loader-data]")).toHaveText(
251255
`loaderData = "clientLoader in main chunk: false"`
@@ -262,6 +266,7 @@ test.describe("Split route modules", async () => {
262266

263267
// Ensure unsplittable exports are in main chunk
264268
await page.getByRole("link", { name: "/unsplittable" }).click();
269+
await expect(page.getByText("Unsplittable Route")).toBeVisible();
265270
expect(await unsplittableHydrateFallbackDownloaded(page)).toBe(true);
266271
await expect(page.locator("[data-loader-data]")).toHaveText(
267272
'loaderData = "clientLoader in main chunk: true"'
@@ -276,6 +281,7 @@ test.describe("Split route modules", async () => {
276281
// Ensure mix of splittable and unsplittable exports are handled correctly.
277282
// Note that only the client action is in its own chunk.
278283
await page.getByRole("link", { name: "/mixed" }).click();
284+
await expect(page.getByText("Mixed Route")).toBeVisible();
279285
await expect(page.locator("[data-loader-data]")).toHaveText(
280286
'loaderData = "clientLoader in main chunk: true"'
281287
);
@@ -287,20 +293,27 @@ test.describe("Split route modules", async () => {
287293

288294
// Ensure splittable HydrateFallback and client loader work during SSR
289295
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(
292300
"padding",
293301
"20px"
294302
);
295303
expect(await splittableHydrateFallbackDownloaded(page)).toBe(true);
296304
await expect(page.locator("[data-loader-data]")).toHaveText(
297305
`loaderData = "clientLoader in main chunk: false"`
298306
);
299-
expect(page.locator("[data-loader-data]")).toHaveCSS("padding", "20px");
307+
await expect(page.locator("[data-loader-data]")).toHaveCSS(
308+
"padding",
309+
"20px"
310+
);
300311

301312
// Ensure unsplittable HydrateFallback and client loader work during SSR
302313
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+
);
304317
expect(await unsplittableHydrateFallbackDownloaded(page)).toBe(true);
305318
await expect(page.locator("[data-loader-data]")).toHaveText(
306319
`loaderData = "clientLoader in main chunk: true"`
@@ -338,21 +351,29 @@ test.describe("Split route modules", async () => {
338351

339352
// Ensure splittable exports are kept in main chunk
340353
await page.getByRole("link", { name: "/splittable" }).click();
354+
await expect(page.getByText("Splittable Route")).toBeVisible();
341355
expect(await splittableHydrateFallbackDownloaded(page)).toBe(true);
342356
await expect(page.locator("[data-loader-data]")).toHaveText(
343357
`loaderData = "clientLoader in main chunk: true"`
344358
);
345-
expect(page.locator("[data-loader-data]")).toHaveCSS("padding", "20px");
359+
await expect(page.locator("[data-loader-data]")).toHaveCSS(
360+
"padding",
361+
"20px"
362+
);
346363
await page.getByRole("button").click();
347364
await expect(page.locator("[data-action-data]")).toHaveText(
348365
'actionData = "clientAction in main chunk: true"'
349366
);
350-
expect(page.locator("[data-action-data]")).toHaveCSS("padding", "20px");
367+
await expect(page.locator("[data-action-data]")).toHaveCSS(
368+
"padding",
369+
"20px"
370+
);
351371

352372
await page.goBack();
353373

354374
// Ensure unsplittable exports are kept in main chunk
355375
await page.getByRole("link", { name: "/unsplittable" }).click();
376+
await expect(page.getByText("Unsplittable Route")).toBeVisible();
356377
expect(await unsplittableHydrateFallbackDownloaded(page)).toBe(true);
357378
await expect(page.locator("[data-loader-data]")).toHaveText(
358379
'loaderData = "clientLoader in main chunk: true"'

0 commit comments

Comments
 (0)