import { describe, expect, it } from "vitest"; import { buildImportIdempotencyKey } from "@/utils/idempotency-client"; describe("buildImportIdempotencyKey", () => { it("stays within 128 chars even with hundreds of row indexes", () => { const key = buildImportIdempotencyKey({ mailId: "99", instructionId: "forecast-body_segment-5-派送单请查收", containerNo: "ZCSU6581068", rowIndexes: Array.from({ length: 290 }, (_, i) => i), }); expect(key.length).toBeLessThanOrEqual(128); expect(key.startsWith("99:")).toBe(true); }); it("changes when the selected rows change", () => { const a = buildImportIdempotencyKey({ mailId: "1", containerNo: "ABCD1234567", rowIndexes: [0, 1], }); const b = buildImportIdempotencyKey({ mailId: "1", containerNo: "ABCD1234567", rowIndexes: [0, 2], }); expect(a).not.toBe(b); }); });