Skip to content

Commit 6844353

Browse files
committed
add e2e test
1 parent 82aa505 commit 6844353

File tree

4 files changed

+34
-2
lines changed

4 files changed

+34
-2
lines changed

.github/workflows/e2e.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ jobs:
111111
- name: Install Nextjs in app-pages-router
112112
working-directory: examples/app-pages-router
113113
run: pnpm add next@${{ needs.check_next_version.outputs.previousNextVersion }}
114+
# We do not install the latest canary of Next in the experimental app.
114115

115116
- name: Get Playwright version
116117
id: playwright-version
@@ -157,6 +158,8 @@ jobs:
157158
echo "PAGES_ROUTER_URL=$PAGES_ROUTER_URL" >> $GITHUB_ENV
158159
APP_PAGES_ROUTER_URL=$(jq -r '.["e2e-example-AppPagesRouter"].url' .sst/outputs.json)
159160
echo "APP_PAGES_ROUTER_URL=$APP_PAGES_ROUTER_URL" >> $GITHUB_ENV
161+
EXPERIMENTAL_APP_URL=$(jq -r '.["e2e-example-Experimental"].url' .sst/outputs.json)
162+
echo "EXPERIMENTAL_APP_URL=$EXPERIMENTAL_APP_URL" >> $GITHUB_ENV
160163
161164
- name: Run e2e Test
162165
run: npm run e2e:test

examples/experimental/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
"private": true,
55
"scripts": {
66
"openbuild": "node ../../packages/open-next/dist/index.js build",
7-
"dev": "next dev --turbopack",
7+
"dev": "next dev --turbopack --port 3004",
88
"build": "next build",
9-
"start": "next start",
9+
"start": "next start --port 3004",
1010
"lint": "next lint",
1111
"clean": "rm -rf .turbo node_modules .next .open-next"
1212
},

packages/tests-e2e/playwright.config.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,12 @@ export default defineConfig({
2323
baseURL: process.env.APP_PAGES_ROUTER_URL || "http://localhost:3003",
2424
},
2525
},
26+
{
27+
name: "experimental",
28+
testMatch: ["tests/experimental/*.test.ts"],
29+
use: {
30+
baseURL: process.env.EXPERIMENTAL_APP_URL || "http://localhost:3004",
31+
},
32+
},
2633
],
2734
});
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { expect, test } from "@playwright/test";
2+
3+
test("PPR should show loading first", async ({ page }) => {
4+
await page.goto("/");
5+
await page.getByRole("link", { name: "Incremental PPR" }).click();
6+
await page.waitForURL("/ppr");
7+
const loading = page.getByText("Loading...");
8+
await expect(loading).toBeVisible();
9+
const el = page.getByText("Dynamic Component");
10+
await expect(el).toBeVisible();
11+
});
12+
13+
test("PPR rsc prefetch request should be cached", async ({ request }) => {
14+
const resp = await request.get("/ppr", {
15+
headers: { rsc: "1", "next-router-prefetch": "1" },
16+
});
17+
expect(resp.status()).toEqual(200);
18+
const headers = resp.headers();
19+
expect(headers["x-nextjs-postponed"]).toEqual("1");
20+
expect(headers["x-nextjs-cache"]).toEqual("HIT");
21+
expect(headers["cache-control"]).toEqual("s-maxage=31536000");
22+
});

0 commit comments

Comments
 (0)