Skip to content

Commit af5a581

Browse files
committed
Exercise chunked request limits in the Worker
1 parent 15f2476 commit af5a581

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

‎e2e/cloud/request-body-limits.test.ts‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,27 @@ scenario(
2121
error: "Request body too large",
2222
});
2323
}
24+
// A streamed request has no Content-Length; the Worker must count real bytes.
25+
let chunks = 0;
26+
const stream = new ReadableStream({
27+
pull(controller) {
28+
if (chunks++ < 33) controller.enqueue(new Uint8Array(1024 * 1024));
29+
else controller.close();
30+
},
31+
});
32+
const streamedRequest = {
33+
method: "POST",
34+
headers: { "content-type": "application/json" },
35+
body: stream,
36+
duplex: "half",
37+
};
38+
const streamedResponse = yield* Effect.promise(() =>
39+
fetch(new URL("/mcp", target.baseUrl), streamedRequest),
40+
);
41+
expect(streamedResponse.status).toBe(413);
42+
expect(yield* Effect.promise(() => streamedResponse.json())).toEqual({
43+
error: "Request body too large",
44+
});
2445
const health = yield* Effect.promise(() => fetch(new URL("/api/account/me", target.baseUrl)));
2546
expect(health.status).toBe(401);
2647
}),

0 commit comments

Comments
 (0)