testAnswersAreCapped

tcmts.atproto.test.testAnswersAreCapped · #jwaz5hwl · term

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/,
  );
}

uses