test(browser): 扩展 fulfill interception harness

为 Phase 6B 增加 Fetch.fulfillRequest 记录能力,便于后续 mock response TDD。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
walker1211
2026-04-18 23:09:14 +08:00
co-authored by Claude Opus 4.7
parent a93e0b6494
commit 23eccb24f3
@@ -107,10 +107,18 @@ type MockInterceptRuleMatch = {
requestId?: string;
};
type MockFulfilledRequest = {
requestId: string;
responseCode?: number;
responseHeaders?: Array<{ name: string; value: string }>;
body?: string;
};
type MockInterceptState = {
pausedRequests?: MockInterceptRuleMatch[];
continuedRequestIds?: string[];
failedRequests?: Array<{ requestId: string; errorReason?: string }>;
fulfilledRequests?: MockFulfilledRequest[];
fetchEnabledPatterns?: unknown[];
enableError?: string;
pauseDispatchDelayMs?: number;
@@ -734,6 +742,22 @@ function createMockBrowser(pagesInput: MockPageState[]) {
return;
}
if (message.method === 'Fetch.fulfillRequest') {
page.intercept = page.intercept || {};
page.intercept.fulfilledRequests = page.intercept.fulfilledRequests || [];
page.intercept.fulfilledRequests.push({
requestId: String(message.params?.requestId || ''),
responseCode:
typeof message.params?.responseCode === 'number' ? message.params.responseCode : undefined,
responseHeaders: Array.isArray(message.params?.responseHeaders)
? (message.params.responseHeaders as Array<{ name: string; value: string }>)
: [],
body: typeof message.params?.body === 'string' ? message.params.body : '',
});
reply({});
return;
}
if (message.method !== 'Runtime.evaluate') {
return;
}