Files
overlord/Overlord-Server/src/server/routes/registration-body-security.test.ts
T
2026-08-24 09:35:03 -05:00

31 lines
1.1 KiB
TypeScript

import { describe, expect, test } from "bun:test";
import { getConfig, updateRegistrationConfig } from "../../config";
import { handleRegistrationRoutes } from "./registration-routes";
describe("public registration body limits", () => {
test("rejects an oversized body before JSON buffering", async () => {
const original = { ...getConfig().registration };
await updateRegistrationConfig({ mode: "open" });
try {
const url = new URL("https://localhost/api/register");
const response = await handleRegistrationRoutes(
new Request(url, {
method: "POST",
headers: {
"Content-Type": "application/json",
"Content-Length": String(16 * 1024 + 1),
},
body: "{}",
}),
url,
{ requestIP: () => ({ address: `198.51.100.${Math.floor(Math.random() * 200) + 1}` }) },
);
expect(response?.status).toBe(413);
expect(await response!.json()).toMatchObject({ error: "Request body too large" });
} finally {
await updateRegistrationConfig(original);
}
});
});