41 lines
1.0 KiB
TypeScript
41 lines
1.0 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import {
|
|
assertBatchFiles,
|
|
PrivacyLimitError,
|
|
resolveLimits,
|
|
} from "../../src/privacy";
|
|
|
|
describe("privacy resource limits", () => {
|
|
it("rejects too many, oversized and collectively oversized files", () => {
|
|
expect(() =>
|
|
assertBatchFiles([{ size: 1 }, { size: 1 }], {
|
|
...resolveLimits(),
|
|
maxFiles: 1,
|
|
}),
|
|
).toThrow(PrivacyLimitError);
|
|
expect(() =>
|
|
assertBatchFiles([{ size: 11 }], {
|
|
...resolveLimits(),
|
|
maxFileBytes: 10,
|
|
}),
|
|
).toThrow(PrivacyLimitError);
|
|
expect(() =>
|
|
assertBatchFiles([{ size: 6 }, { size: 6 }], {
|
|
...resolveLimits(),
|
|
maxFileBytes: 10,
|
|
maxBatchBytes: 10,
|
|
}),
|
|
).toThrow(PrivacyLimitError);
|
|
});
|
|
|
|
it("rejects invalid limit overrides", () => {
|
|
expect(() => resolveLimits({ maxFiles: 0 })).toThrow(
|
|
/positive safe integer/iu,
|
|
);
|
|
expect(() => resolveLimits({ maxFileBytes: Number.NaN })).toThrow(
|
|
/positive safe integer/iu,
|
|
);
|
|
});
|
|
});
|