Skip to content

Commit 66fd275

Browse files
committed
Update tests
1 parent 8fd0e0c commit 66fd275

File tree

2 files changed

+99
-210
lines changed

2 files changed

+99
-210
lines changed

integration/middleware-revaildate-test.ts

Lines changed: 0 additions & 210 deletions
This file was deleted.

integration/middleware-test.ts

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1479,6 +1479,77 @@ test.describe("Middleware", () => {
14791479
return <h3 data-b>B: {loaderData}</h3>;
14801480
}
14811481
`,
1482+
"app/routes/revalidate.parent.tsx": js`
1483+
import { Outlet } from "react-router";
1484+
import { orderContext } from '../context';
1485+
1486+
export const middleware = [
1487+
({ context, params }) => {
1488+
context.set(orderContext, [
1489+
...context.get(orderContext),
1490+
'parent middleware ' + params.child
1491+
]);
1492+
},
1493+
];
1494+
1495+
export async function loader({ context, params }) {
1496+
context.set(orderContext, [
1497+
...context.get(orderContext),
1498+
'parent loader ' + params.child
1499+
]);
1500+
await new Promise(r => setTimeout(r, 0));
1501+
return context.get(orderContext).join(',');
1502+
}
1503+
1504+
export const shouldRevalidate = () => false;
1505+
1506+
export default function Parent({ loaderData }) {
1507+
return (
1508+
<>
1509+
<h1>Parent</h1>
1510+
<div id="parent-loader-data">{loaderData}</div>
1511+
<Outlet />
1512+
</>
1513+
);
1514+
}
1515+
`,
1516+
1517+
"app/routes/revalidate.parent.$child.tsx": js`
1518+
import { href, Link } from "react-router";
1519+
import { orderContext } from '../context';
1520+
1521+
export const middleware = [
1522+
({ context, params }) => {
1523+
context.set(orderContext, [
1524+
...context.get(orderContext),
1525+
'child middleware ' + params.child
1526+
]);
1527+
},
1528+
];
1529+
1530+
export async function loader({ context, params }) {
1531+
context.set(orderContext, [
1532+
...context.get(orderContext),
1533+
'child loader ' + params.child
1534+
]);
1535+
await new Promise(r => setTimeout(r, 0));
1536+
return context.get(orderContext).join(',');
1537+
}
1538+
1539+
export default function Child({ loaderData, params }) {
1540+
const nextChild = String(Number(params.child) + 1);
1541+
1542+
return (
1543+
<>
1544+
<h1>Child: {params.child}</h1>
1545+
<div id="child-loader-data">{loaderData}</div>
1546+
<Link to={href("/revalidate/parent/:child", { child: nextChild })}>
1547+
Next child
1548+
</Link>
1549+
</>
1550+
);
1551+
}
1552+
`,
14821553
"app/routes/without-loader-document._index.tsx": js`
14831554
import { Link } from 'react-router'
14841555
export default function Component({ loaderData }) {
@@ -1823,6 +1894,34 @@ test.describe("Middleware", () => {
18231894
expect(await page.locator("[data-b]").textContent()).toBe("B: a,b");
18241895
});
18251896

1897+
test("Filters server loaders via shouldRevalidate", async ({ page }) => {
1898+
let app = new PlaywrightFixture(appFixture, page);
1899+
1900+
await app.goto("/revalidate/parent/1");
1901+
expect(await page.locator("#parent-loader-data").textContent()).toBe(
1902+
"parent middleware 1,child middleware 1,parent loader 1,child loader 1",
1903+
);
1904+
expect(await page.locator("#child-loader-data").textContent()).toBe(
1905+
"parent middleware 1,child middleware 1,parent loader 1,child loader 1",
1906+
);
1907+
1908+
await app.clickLink("/revalidate/parent/2");
1909+
expect(await page.locator("#parent-loader-data").textContent()).toBe(
1910+
"parent middleware 1,child middleware 1,parent loader 1,child loader 1",
1911+
);
1912+
expect(await page.locator("#child-loader-data").textContent()).toBe(
1913+
"parent middleware 2,child middleware 2,child loader 2",
1914+
);
1915+
1916+
await app.clickLink("/revalidate/parent/3");
1917+
expect(await page.locator("#parent-loader-data").textContent()).toBe(
1918+
"parent middleware 1,child middleware 1,parent loader 1,child loader 1",
1919+
);
1920+
expect(await page.locator("#child-loader-data").textContent()).toBe(
1921+
"parent middleware 3,child middleware 3,child loader 3",
1922+
);
1923+
});
1924+
18261925
test("calls middleware for routes even without a loader (document)", async ({
18271926
page,
18281927
}) => {

0 commit comments

Comments
 (0)