testAnswersAreCapped
An answer is read only up to its cap: one that says it's longer, or is, is refused.
import { cappedBytes } from "#codebase/tcmts/atproto"; import assert from "node:assert/strict"; export const testAnswersAreCapped = async () => { assert.equal((await cappedBytes(new Response("x".repeat(100)), 100, "a server")).length, 100); await assert.rejects(cappedBytes(new Response("x".repeat(101)), 100, "a server"), /more than/); const stream = new ReadableStream({ start(c) { for (let i = 0; i < 10; i++) c.enqueue(new Uint8Array(50)); c.close(); }, }); await assert.rejects(cappedBytes(new Response(stream), 200, "a server"), /more than/); await assert.rejects( cappedBytes(new Response("x", { headers: { "content-length": "999999999" } }), 100, "a server"), /more than/, ); }