Files
MeshChatX/tests/frontend/incomingDeliveryLimit.test.js

38 lines
1.4 KiB
JavaScript

import { describe, it, expect } from "vitest";
import {
INCOMING_DELIVERY_MAX_BYTES,
INCOMING_DELIVERY_PRESET_BYTES,
clampIncomingDeliveryBytes,
incomingDeliveryBytesFromCustom,
incomingDeliveryBytesFromPresetKey,
syncIncomingDeliveryFieldsFromBytes,
} from "../../meshchatx/src/frontend/js/settings/incomingDeliveryLimit.js";
describe("incomingDeliveryLimit", () => {
it("clamps to max 1 GiB", () => {
expect(clampIncomingDeliveryBytes(2_000_000_000)).toBe(INCOMING_DELIVERY_MAX_BYTES);
});
it("maps preset keys to bytes", () => {
expect(incomingDeliveryBytesFromPresetKey("1gb")).toBe(1_000_000_000);
expect(incomingDeliveryBytesFromPresetKey("custom")).toBeNull();
});
it("parses custom MB and GB", () => {
expect(incomingDeliveryBytesFromCustom(9, "mb")).toBe(9_000_000);
expect(incomingDeliveryBytesFromCustom(1, "gb")).toBe(1_000_000_000);
});
it("syncs preset field for exact preset bytes", () => {
const s = syncIncomingDeliveryFieldsFromBytes(INCOMING_DELIVERY_PRESET_BYTES["25mb"]);
expect(s.preset).toBe("25mb");
});
it("syncs custom for non-preset bytes", () => {
const s = syncIncomingDeliveryFieldsFromBytes(9_000_000);
expect(s.preset).toBe("custom");
expect(s.customAmount).toBe(9);
expect(s.customUnit).toBe("mb");
});
});