diff --git a/packages/plugin-rsc/CONTRIBUTING.md b/packages/plugin-rsc/CONTRIBUTING.md index b16ab9d89..5effee821 100644 --- a/packages/plugin-rsc/CONTRIBUTING.md +++ b/packages/plugin-rsc/CONTRIBUTING.md @@ -32,7 +32,7 @@ Use `examples/basic`, which contains comprehensive test scenarios, when the case **Using `setupInlineFixture`** -Use `setupInlineFixture` with `examples/starter` for narrow configuration variants, invalid-input coverage, and cases where a standalone runnable example would add mostly boilerplate. Test projects are written under `examples/e2e/temp/`, with dependencies managed in `examples/e2e/package.json`. See `e2e/ssr-thenable.test.ts` for the pattern. +Use `setupInlineFixture` with `examples/starter-extra` for narrow configuration variants, invalid-input coverage, and cases where a standalone runnable example would add mostly boilerplate. Test projects are written under `examples/e2e/temp/`, with dependencies managed in `examples/e2e/package.json`. See `e2e/ssr-thenable.test.ts` for the pattern. ### Unit Tests diff --git a/packages/plugin-rsc/e2e/cloudflare.test.ts b/packages/plugin-rsc/e2e/cloudflare.test.ts index 724d80770..d2d5f18a8 100644 --- a/packages/plugin-rsc/e2e/cloudflare.test.ts +++ b/packages/plugin-rsc/e2e/cloudflare.test.ts @@ -1,10 +1,18 @@ import { test } from '@playwright/test' -import { useFixture } from './fixture' +import { setupInlineFixture, useFixture } from './fixture' import { defineStarterTest } from './starter' +// Run on a copy so the HMR tests never edit `examples/starter-extra`, +// which other specs copy as their inline fixture base. +const root = 'examples/e2e/temp/cloudflare' + +test.beforeAll(async () => { + await setupInlineFixture({ src: 'examples/starter-extra', dest: root }) +}) + test.describe('dev-cloudflare', () => { const f = useFixture({ - root: 'examples/starter-extra', + root, mode: 'dev', command: 'pnpm cf:dev', }) @@ -13,7 +21,7 @@ test.describe('dev-cloudflare', () => { test.describe('build-cloudflare', () => { const f = useFixture({ - root: 'examples/starter-extra', + root, mode: 'build', buildCommand: 'pnpm cf:build', command: 'pnpm cf:preview', diff --git a/packages/plugin-rsc/examples/e2e/package.json b/packages/plugin-rsc/examples/e2e/package.json index 733431b2c..9bd59da85 100644 --- a/packages/plugin-rsc/examples/e2e/package.json +++ b/packages/plugin-rsc/examples/e2e/package.json @@ -3,12 +3,14 @@ "private": true, "type": "module", "devDependencies": { + "@cloudflare/vite-plugin": "^1.62.5", "@rolldown/plugin-babel": "^0.2.4", "@vitejs/plugin-react": "latest", "@vitejs/plugin-rsc": "latest", "babel-plugin-react-compiler": "^1.0.0", "connect": "^3.7.0", "rsc-html-stream": "^0.0.8", - "sirv": "^3.0.2" + "sirv": "^3.0.2", + "wrangler": "^4.147.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b32369f4a..1fc013942 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -726,6 +726,9 @@ importers: packages/plugin-rsc/examples/e2e: devDependencies: + '@cloudflare/vite-plugin': + specifier: ^1.62.5 + version: 1.62.5(@types/node@24.19.1)(vite@8.3.2(@types/node@24.19.1)(esbuild@0.28.1)(jiti@2.7.0)(yaml@2.9.1))(wrangler@4.147.0(@types/node@24.19.1)) '@rolldown/plugin-babel': specifier: ^0.2.4 version: 0.2.4(@babel/core@8.0.6)(rolldown@1.2.12)(vite@8.3.2(@types/node@24.19.1)(esbuild@0.28.1)(jiti@2.7.0)(yaml@2.9.1)) @@ -747,6 +750,9 @@ importers: sirv: specifier: ^3.0.2 version: 3.0.2 + wrangler: + specifier: ^4.147.0 + version: 4.147.0(@types/node@24.19.1) packages/plugin-rsc/examples/no-ssr: dependencies: