31 lines
1.1 KiB
TypeScript
31 lines
1.1 KiB
TypeScript
import { randomUUID } from "node:crypto";
|
|
|
|
import { describe, expect, it } from "vitest";
|
|
|
|
import { storageCapacityErrorDetails } from "../../apps/api/src/storage-policy.js";
|
|
import { createErrorEnvelope, isErrorEnvelope } from "../../packages/shared-contracts/src/index.js";
|
|
|
|
describe("TDD-WP0-STO-002-over-limit API envelope", () => {
|
|
it.each(["reference", "generated", "export", "sticker_original", "sticker_thumbnail"])(
|
|
"returns stable 507 details for %s",
|
|
(kind) => {
|
|
const envelope = createErrorEnvelope({
|
|
code: "STORAGE_CAPACITY_EXCEEDED",
|
|
correlationId: randomUUID(),
|
|
details: storageCapacityErrorDetails({
|
|
activeReservationBytes: 0,
|
|
managedContentBytes: 5_368_709_119,
|
|
projectedWriteBytes: 2,
|
|
}),
|
|
});
|
|
expect(isErrorEnvelope(envelope)).toBe(true);
|
|
expect(envelope.error).toMatchObject({
|
|
code: "STORAGE_CAPACITY_EXCEEDED",
|
|
details: { capacity_status: "critical", remaining_bytes: 1 },
|
|
message_key: "STORAGE_CAPACITY_EXCEEDED",
|
|
});
|
|
expect(kind).toBeTruthy();
|
|
},
|
|
);
|
|
});
|