コンテンツにスキップ

React Router / Remix

React Router 7 の loader と action はサーバーで実行されるため、それらの fetch 呼び出しはブラウザのコンテキストなしでプロキシを通過します — Next.js の SSR と同じ状況です。プロキシは、それらのサーバーサイドリクエストを正しい記録セッションに紐付けるために x-test-rcrd-id ヘッダーを必要とします。

手動パターン(今日機能します)

Section titled “手動パターン(今日機能します)”

各 loader/action は受信した request を受け取ります。そこから記録 ID のヘッダーを読み取り、サーバーサイドの任意の fetch で転送してください:

import { RECORDING_ID_HEADER } from 'test-proxy-recorder';
import type { LoaderFunctionArgs } from 'react-router';
export async function loader({ request }: LoaderFunctionArgs) {
const headers: Record<string, string> = {};
const id = request.headers.get(RECORDING_ID_HEADER); // 'x-test-rcrd-id'
if (id) headers[RECORDING_ID_HEADER] = id;
// Point the API base at the proxy in dev/test only.
const res = await fetch('http://localhost:8100/api/data', { headers });
return res.json();
}

手動セットアップとまったく同様に、バックエンドのベース URL を開発/テストのみでプロキシ(http://localhost:8100)に向けてください。ブラウザサイドのリクエストは引き続き playwrightProxy.before() の HAR メカニズムで処理されます。

アダプターが登場すると、これはヘルパーの 1 つの import に簡略化されます — 進捗はロードマップで追ってください。